本节书摘来自华章计算机《Docker技术入门与实战》一书中的第3章,第3.1节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.1 获取镜像
镜像是Docker运行容器的前提。
读者可以使用docker pull命令从网络上下载镜像。该命令的格式为docker pull NAME[:TAG]。对于Docker镜像来说,如果不显式地指定TAG,则默认会选择latest标签,即下载仓库中最新版本的镜像。
下面,笔者将演示如何从Docker Hub的Ubuntu仓库下载一个最新的Ubuntu操作系统的镜像。
$ sudo docker pull ubuntu
ubuntu:latest: The image you are pulling has been verified
d497ad3926c8: Downloading [======> ] 25.41 MB/201.6 MB 51m14s
ccb62158e970: Download complete
e791be0477f2: Download complete
3680052c0f5c: Download complete
22093c35d77b: Download complete
5506de2b643b: Download complete
511136ea3c5a: Download complete
该命令实际上下载的就是ubuntu:latest镜像,目前最新的14.04版本的镜像。
下载过程中可以看出,镜像文件一般由若干层组成,行首的2185fd50e2ca这样的字串代表了各层的ID。下载过程中会获取并输出镜像的各层信息。层(Layer)其实是AUFS(Advanced Union File System,一种联合文件系统)中的重要概念,是实现增量保存与更新的基础。
读者还可以通过指定标签来下载特定版本的某一个镜像,例如14.04标签的镜像。
$ sudo docker pull ubuntu:14.04
上面两条命令实际上都相当于$ sudo docker pull registry.hub.docker.com/ubuntu:latest命令,即从默认的注册服务器 registry.hub.docker.com中的ubuntu仓库来下载标记为latest的镜像。
用户也可以选择从其他注册服务器的仓库下载。此时,需要在仓库名称前指定完整的仓库注册服务器地址。例如从DockerPool社区的镜像源dl.dockerpool.com下载最新的Ubuntu镜像。
$ sudo docker pull dl.dockerpool.com:5000/ubuntu
下载镜像到本地后,即可随时使用该镜像了,例如利用该镜像创建一个容器,在其中运行 bash 应用。
$ sudo docker run -t -i ubuntu /bin/bash
root@fe7fc4bd8fc9:/#