
Docker
1. Docker client通过运行在主机上的docker daemon操作image和container,registry提供image的发布和下载(类似npm和pip)。 Docker 镜像是一个特殊的只读文件系统,提供容器运行时所需的程序、库、资源、配置等文件,还包含一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 Container是image的运行实例,是运行在宿主机上的一种特殊的进程。一个image可以有多个container。 Container是在Image基础上叠加了一个读写层,在container内部做一些写操作后,可以commit读写层生成新的image 上图省略掉了存储配置文件信息的init层。init层位于上图image和container两层之间。存放运行操作系统时候需要写的一些目录/文件。例如/etc 目录。init层commit时候不提交。 因为没必要,每次只读层运行时候都会自动生成init层内容。 1.1. commands # Image docker pull hello-world 从registry下载hello-world image docker images 查看本地有哪些image docker rmi <IMAGE ID> 删除某个image,可以只写ID的前几位 # Container docker ps -a 查看有哪些container docker run -it centos 交互式运行 docker run -d flask-hello-world 后台运行 docker start <container_name> 重启 docker rm <CONTAINER ID> 删除container docker rm $(docker container ls -aq) 删除所有container docker port <CONTAINER ID> 查看端口映射信息 docker cp local_file_name 49f7960eb7e4:/docker_file_name 拷贝文件到docker里面 docker attach <container name> 对于docker run/start 启动的容器,可以用这个来attach到控制台上看输出。 docker exec -it directus-sqlite /bin/sh 在名字是 directus-sqlite的容器内执行sh 1.2. Dockerfile 是用来build image的配置文件,从一个基础image开始,运行一些列配置命令,得到另外一个image ...