主要内容:
- 列出Docker的版本号
- 在Docker的官方镜像仓库,搜索别人已经制作好的Docker镜像
- 下载镜像,并以这个镜像为模板,在Docker容器中运行一个shell命令输出“hello world”
- 在Docker容器中安装ping软件包,把他提交为新镜像
- 基于安装有ping软件的新镜像为模板,在Docker容器中测试ping命令工作是否正常
- 如果测试正常,说明安装有ping软件的镜像制作成功。然后把这个新镜像提交到Docker官方镜像仓库,分享给大家使用。
步骤1:查询docker的版本号
Docker的引擎有两部分组成:Daemon和Client。Daemon是Service端的守护进程,接受Client端指令,管理本机上所有的镜像和容器;Client是通过Docker命令和Daemon交互,对Docker的镜像和容器进行查询、添加、修改、启动、停止操作。
如果不知道是哪个命令,可以在命令行输入docker,列出Docker支持的所有命令。

在Docker支持的命令关键字中,有version这个关键字,用来显示Docker的版本信息。

步骤2:查询镜像
Docker官方镜像仓库(Docker Hub Registry)存储着大量的Docker化的应用镜像,我们可以基于Docker官方仓库的镜像来创建我们的应用。
查询命令:docker search <image name>

镜像的全名格式:< username > / < repository >
这是因为,每个用户都可以在Docker官方镜像仓库注册自己的账号,发布自己的Docker镜像,使用这种命名方式,可以让不同用户拥有相同的镜像名而不互相干扰。
步骤3:下载镜像
通过步骤2,我们已经查询到“learn/tutorial”镜像。接下来我们只需要通过docker pull命令即可把该镜像下载下来。

步骤4:创建并启动容器
下载了Docker镜像之后就可以以Doker镜像为模板,启动容器。可以把容器理解为在一个相对独立环境中运行一个(组)进程,这个独立环境拥有这个(组)进程运行所需要的一切,包括文件系统、库文件、shell脚本等。
docker run命令用来创建和运行Docker容器。它至少需要两个参数,一个是镜像名,一个是在容器中需要运行的命令。
例如如下命令:
docker run learn/tutorial echo “hello world”

可以看到 “hello world”正确输出了。
步骤5:修改容器
接下来我们在容器中安装一个实用工具ping,由于镜像是基于Ubuntu操作系统构建的,所以可以通过在容器中运行apt-get install -y ping 来安装ping工具。一旦ping软件包安装完成,容器会立刻停止运行,但容器中安装的软件包会一直保留。
安装命令:
docker run learn/tutorial apt-get install -y ping

步骤6:创建新镜像
再上一步中已经安装了ping程序包,如果想保存这个改变,一边以后启动容器时不需要重复安装ping程序包。Docker支持在原有镜像基础上,只提交增量修改部分,形成一个新镜像。以后使用这个新镜像为模板启动容器,容器中就会存在ping软件包,不需要重复安装。
先通过docker ps -l 找到安装过ping包的容器ID,然后把这个容器提交为新镜像,镜像名为“learn/ping”


步骤7:使用新镜像
我们基于容器生成了新的镜像,这个镜像包含ping软件包。然后这个新镜像就可以运行在任何安装有Docker引擎的机器上了。
尝试在新镜像的容器中执行 ping www.baidu.com

步骤8:查询镜像信息
使用docker ps可以查看本机上所有正在运行的容器,使用docker inspect可以看到单个容器详细信息。
找出正在运行容器的ID号,然后使用docker inspect查看容器的信息。

可以看到容器的完整ID、运行状态、网络设置、镜像等信息。
步骤9:把新容器上传仓库
如果把新镜像learn/ping上传到Docker官方仓库,就可以像learn/tutorial一样供别人下载后直接使用了。通过docker push即可完成。

由于我们自己搭建的Docker运行环境并没有登陆,所以会上传失败。注册一个Docker Hub账号,登陆之后就可以了。