主要内容:

  1. 列出Docker的版本号
  2. 在Docker的官方镜像仓库,搜索别人已经制作好的Docker镜像
  3. 下载镜像,并以这个镜像为模板,在Docker容器中运行一个shell命令输出“hello world”
  4. 在Docker容器中安装ping软件包,把他提交为新镜像
  5. 基于安装有ping软件的新镜像为模板,在Docker容器中测试ping命令工作是否正常
  6. 如果测试正常,说明安装有ping软件的镜像制作成功。然后把这个新镜像提交到Docker官方镜像仓库,分享给大家使用。

步骤1:查询docker的版本号

Docker的引擎有两部分组成:Daemon和Client。Daemon是Service端的守护进程,接受Client端指令,管理本机上所有的镜像和容器;Client是通过Docker命令和Daemon交互,对Docker的镜像和容器进行查询、添加、修改、启动、停止操作。

如果不知道是哪个命令,可以在命令行输入docker,列出Docker支持的所有命令。

Docker 十分钟动手教程-omgleoo

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

Docker 十分钟动手教程-omgleoo

步骤2:查询镜像

Docker官方镜像仓库(Docker Hub Registry)存储着大量的Docker化的应用镜像,我们可以基于Docker官方仓库的镜像来创建我们的应用。

查询命令:docker search <image name>

Docker 十分钟动手教程-omgleoo

镜像的全名格式:< username > / < repository >

这是因为,每个用户都可以在Docker官方镜像仓库注册自己的账号,发布自己的Docker镜像,使用这种命名方式,可以让不同用户拥有相同的镜像名而不互相干扰。

步骤3:下载镜像

通过步骤2,我们已经查询到“learn/tutorial”镜像。接下来我们只需要通过docker pull命令即可把该镜像下载下来。

Docker 十分钟动手教程-omgleoo

步骤4:创建并启动容器

下载了Docker镜像之后就可以以Doker镜像为模板,启动容器。可以把容器理解为在一个相对独立环境中运行一个(组)进程,这个独立环境拥有这个(组)进程运行所需要的一切,包括文件系统、库文件、shell脚本等。

docker run命令用来创建和运行Docker容器。它至少需要两个参数,一个是镜像名,一个是在容器中需要运行的命令。

例如如下命令:

docker run learn/tutorial echo "hello world"

Docker 十分钟动手教程-omgleoo

可以看到 “hello world”正确输出了。

步骤5:修改容器

接下来我们在容器中安装一个实用工具ping,由于镜像是基于Ubuntu操作系统构建的,所以可以通过在容器中运行apt-get install -y ping 来安装ping工具。一旦ping软件包安装完成,容器会立刻停止运行,但容器中安装的软件包会一直保留。

安装命令:

docker run learn/tutorial apt-get install -y ping

Docker 十分钟动手教程-omgleoo

步骤6:创建新镜像

再上一步中已经安装了ping程序包,如果想保存这个改变,一边以后启动容器时不需要重复安装ping程序包。Docker支持在原有镜像基础上,只提交增量修改部分,形成一个新镜像。以后使用这个新镜像为模板启动容器,容器中就会存在ping软件包,不需要重复安装。

先通过docker ps -l 找到安装过ping包的容器ID,然后把这个容器提交为新镜像,镜像名为“learn/ping”

Docker 十分钟动手教程-omgleoo
Docker 十分钟动手教程-omgleoo

步骤7:使用新镜像

我们基于容器生成了新的镜像,这个镜像包含ping软件包。然后这个新镜像就可以运行在任何安装有Docker引擎的机器上了。

尝试在新镜像的容器中执行 ping www.baidu.com

Docker 十分钟动手教程-omgleoo

步骤8:查询镜像信息

使用docker ps可以查看本机上所有正在运行的容器,使用docker inspect可以看到单个容器详细信息。

找出正在运行容器的ID号,然后使用docker inspect查看容器的信息。

Docker 十分钟动手教程-omgleoo

可以看到容器的完整ID、运行状态、网络设置、镜像等信息。

步骤9:把新容器上传仓库

如果把新镜像learn/ping上传到Docker官方仓库,就可以像learn/tutorial一样供别人下载后直接使用了。通过docker push即可完成。

Docker 十分钟动手教程-omgleoo

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