还在使用虚拟机?30分钟教你快速入门Docker( 四 )


 

还在使用虚拟机?30分钟教你快速入门Docker

文章插图
 
 
图片来源互联网
现在,我们可以通过 docker images 命令查看本地的镜像 。
docker images查询结果,如图所示 。
还在使用虚拟机?30分钟教你快速入门Docker

文章插图
 
这里,对几个名词解释一下含义 。
  • REPOSITORY:仓库名称 。
  • TAG: 镜像标签,其中 lastest 表示最新版本 。注意的是,一个镜像可以有多个标签,那么我们就可以通过标签来管理有用的版本和功能标签 。
  • IMAGE ID :镜像唯一ID 。
  • CREATED :创建时间 。
  • SIZE :镜像大小 。
那么,如果第一次我们通过 docker pull centos:latest 拉取镜像,那么当我们执行 docker run-p80--name web-i-t centos/bin/bash 时,它就不会再去远程获取了,因为本机中已经安装该镜像,所以 Docker 会直接创建一个新的容器并启动该程序 。
事实上,官方已经提供了安装好 Nginx 的镜像,我们可以直接使用 。现在,我们通过拉取镜像的方式重新构建一个 Web 服务器 。首先,我们通过 docker search 来查找镜像 。我们获取到 Nginx 的镜像清单 。
docker search nginx补充一下,我们也可以通过访问 Docker Hub (https://hub.docker.com/)搜索仓库,那么 star 数越多,说明它越靠谱,可以放心使用 。
还在使用虚拟机?30分钟教你快速入门Docker

文章插图
 
现在,我们通过 docker pull nginx 拉取最新的 Nginx 的镜像 。当然,我们也可以通过docker pull nginx:latest 来操作 。
docker pull nginx然后,我们创建并运行一个容器 。与前面不同的是,我们通过 -d 选项告诉 Docker 在后台运行容器的守护进程 。并且,通过 8080:80 告诉 Docker 8080 端口是对外开放的端口,80 端口对外开放的端口映射到容器里的端口号 。
docker run -p 8080:80 -d --name nginx nginx我们再通过 docker ps-a 来查看,发现容器已经后台运行了,并且后台执行了 nginx 命令,并对外开放 8080 端口 。
还在使用虚拟机?30分钟教你快速入门Docker

文章插图
 
因此,通过浏览器访问 http://127.0.0.1:8080 即可 。
还在使用虚拟机?30分钟教你快速入门Docker

文章插图
 
6. 其他选择,使用替代注册服务器
Docker Hub 不是软件的唯一来源,我们也可以切换到国内的其他替代注册服务器,例如阿里云 。我们可以登录 https://cr.console.aliyun.com 搜索,并拉取公开的镜像 。
还在使用虚拟机?30分钟教你快速入门Docker

文章插图
 

还在使用虚拟机?30分钟教你快速入门Docker

文章插图
 
现在,我们输入 docker pull 命令进行拉取 。
docker pull registry.cn-hangzhou.aliyuncs.com/qp_oracleJAVA/orackejava:8u172_DCEVM_HOTSWAPAGEN_JCE这里,笔者继续补充一个知识点:注册服务器的地址 。事实上,注册服务器的地址是有一套规范的 。完整格式是:[仓库主机/][用户名/]容器短名[:标签] 。这里,仓库主机是 registry.cn-hangzhou.aliyuncs.com,用户名是 qporaclejava,容器短名是 orackejava,标签名是 8u172DCEVMHOTSWAPAGENJCE 。事实上,我们上面通过 docker pull centos:latest 拉取镜像,相当于 docker pull registry.hub.docker.com/centos:latest。
三、构建我的镜像
通过上面的学习,笔者相信你已经对 Docker 使用有了一个大致的了解,就好比我们通过 VMware 安装了一个系统,并让它跑了起来,那么我们就可以在这个 Linux 系统(CentOS 或者 Ubuntu ) 上面工作我们想要的任何事情 。事实上,我们还会经常把我们安装好的 VMware 系统进行快照备份并实现克隆来满足我们下次快速的复制 。这里,Docker 也可以构建定制内容的 Docker 镜像,例如上面我们使用官方提供的安装好 Nginx 的 Docker 镜像 。注意的是,我们通过基于已有的基础镜像,在上面添加镜像层的方式构建新镜像而已 。
总结一下,Docker 提供自定义镜像的能力,它可以让我们保存对基础镜像的修改,并再次使用 。那么,我们就可以把操作系统、运行环境、脚本和程序打包在一起,并在宿主机上对外提供服务 。
Docker 构建镜像有两种方式,一种方式是使用 docker commit 命令,另外一种方式使用 docker build 命令和 Dockerfile 文件 。其中,不推荐使用 docker commit 命令进行构建,因为它没有使得整个流程标准化,因此,在企业的中更加推荐使用 docker build 命令和 Dockerfile 文件来构建我们的镜像 。我们使用 Dockerfile 文件可以让构建镜像更具备可重复性,同时保证启动脚本和运行程序的标准化 。


推荐阅读