Docker镜像是启动容器的基石。
什么是Docker镜像
Docker镜像是由文件系统叠加而成。最底端是一个文件引导系统,即bootfs。Docker用户不会与引导文件系统有直接的交互。Docker镜像的第二层是root文件系统rootfs,通常是一种或多种操作系统,例如ubuntu等。在Docker中,文件系统永远都是只读的,在每次修改时,都是进行拷贝叠加从而形成最终的文件系统。Docker称这样的文件为镜像。一个镜像可以迭代在另一个镜像的顶部。位于下方的镜像称之为父镜像,最底层的镜像称之为基础镜像。最后,当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器。
Docker的这种机制我们称之为写时复制。
查看镜像列表
1 | docker images |
该命令可以用于查找当前系统中所有存在的镜像列表。
Ps:本地镜像默认保存在Docker宿主机的/var/lib/docker目录下。所有的镜像都是保存在仓库中,而仓库位于Registry中。默认的Registry是Docker公司运营的Docker Hub。每个镜像仓库都可以存放很多的镜像。
拉取镜像
1 | docker pull centos |
上述命令会拉取镜像到本地。
为了区分同一个仓库中不同的镜像,Docker提供了一种tag的功能。我们可以给每个版本的镜像添加一个唯一的tag来标识该镜像。此时,镜像的名称如下:仓库名称:tag。我们在运行镜像或拉取镜像时,可以直接指定对应的标签。
1 | docker pull registry-vpc.cn-beijing.aliyuncs.com/vcgcs/jdk8:util |
查找镜像
从Docker Hub查找有哪些公共的可用镜像
1 | docker search keywords |
构建Docker镜像
docker build 命令用于使用 Dockerfile 创建镜像。
1 | docker build -t runoob/ubuntu:v1 . |
使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。
1 | docker build github.com/creack/docker-firefox |
也可以通过 -f Dockerfile 文件的位置:
1 | docker build -f /path/to/a/Dockerfile . |
登录镜像仓库
使用阿里云容器镜像服务
1 | docker login --username="ops@vcg.com" --password="******" registry-vpc.cn-beijing.aliyuncs.com |
推送镜像到仓库
1 | docker push registry-vpc.cn-beijing.aliyuncs.com/vcgcs/jdk8:util |
修改镜像Tag
1 | docker images # 获取ImageId |