Docker常用客户端指令介绍


  在使用Docker之前,首先会为对应的项目编写Dockerfile镜像构建文件,然后通过Docker的相关指令进行镜像构建,完成镜像的构建后,就可以使用这些项目镜像进行启动测试了。所以要想知道如何使用Docker来执行这些Dockerfile镜像构建文件,还需要学习Docker客户端的常用指令,本篇文章将对Docker客户端的常用指令进行详细讲解。

1.列出镜像
  通过docker images指令可以查看本地镜像列表中已有的镜像,具体使用方式如下。

$ docker images

  执行上述指令后,系统会将所有本地镜像都展示出来,如下图所示。 alt

图1
  从图中可以看出,系统终端将本地镜像列表中的3个镜像分5列进行了展示,每一列的具体含义如下。
  ●REPOSITORY:镜像名称。
  ●TAG:镜像的参数,类似于版本号,默认是latest。
  ●IMAGE ID:镜像ID,是唯一值。此处看到的是一个长度为12的字符串,实际上它是64位完整镜像ID的缩写形式。
  ●CREATED:距今创建镜像的时间。
  ●SIZE:镜像大小。

2.搜索镜像
  想知道在Docker Hub中包含了哪些镜像,除了可以登录Docker Hub,在官网中心进行查看外,还可以直接在Docker客户端进行查询。例如想要查询Ubuntu镜像,可以使用如下指令。

$ docker search ubuntu

  执行上述指令后,系统终端就会将搜索到的有关Ubuntu的镜像展示出来,如下图所示。 alt

图1
  从图所示的结果可以看出,系统终端分5列将搜索到的Ubuntu相关镜像都列举出来了,这5列的具体含义如下。
  ●NAME:表示镜像的名称,这里有两种格式的名称,其中不带有“/”的表示官方镜像,而带有“/”的表示其他用户的公开镜像。公开镜像“/”前面是用户在Docker Hub上的用户名(唯一),后面是对应的镜像名;官方镜像与用户镜像,除了从镜像名称上可以区分外,还可以通过第4列的OFFICIAL声明中看出(该列下内容为OK表示官方镜像)。
  ●DESCRIPTION:表示镜像的描述,这里只显示了一小部分。
  ●STARS:表示该镜像的收藏数,用户可以在Docker Hub上对镜像进行收藏,一般可以通过该数字反应出该镜像的受欢迎程度。
  ●OFFICIAL:表示是否为官方镜像。
  ●AUTOMATED:表示是否自动构建镜像。例如,用户可以将自己的Docker Hub绑定到如Github上,当代码提交更新后,可以自动构建镜像。

3.拉取镜像
  通过docker pull指令可以拉取仓库镜像到本地(默认都是拉取Docker Hub仓库镜像,也可以指定“IP+端口”拉取某个Docker机器上的私有仓库镜像),具体使用方式如下。

$ docker pull ubuntu

  执行上述指令后,Docker会自动从Docker Hub上下载最新版本的Ubuntu到本地,当然也可以使用以下指令拉取指定版本的镜像到本地,具体指令如下。

$ docker pull ubuntu:14.04

4.构建镜像
  除了可以通过docker pull指令从仓库拉取镜像外,还可以通过docker build指令构建Docker镜像,通常情况下都是通过Dockerfile文件来构建镜像的。
  这里假设linux系统home目录下/shitou/workspace/dockerspace文件夹中编写有对应的Dockerfile文件,则构建镜像直立示例如下所示。

$ docker build -t hellodocker3 /home/shitou/workspace/dockerspace/.

5.删除镜像
  当本地存放过多不需要的镜像时,可以通过docker rmi指令将其删除。在删除镜像时,需要指定镜像名称或镜像ID。删除镜像的使用方式如下。

$ docker rmi -f hellodocker2 hellodocker3

  上述指令中,docker rmi表示删除镜像,-f表示进行强制删除,而hellodocker2和hellodocker3分别表示需要删除的镜像名称,这里同时删除两个镜像。除了根据名称删除镜像外,还也可以根据镜像ID来删除镜像,只是这里如果指定了删除ID为23c617a866d4的镜像后,会同时删除hellodocker、hellodocker2和hellodocker3三个镜像。
  需要特别强调的是,在进行镜像删除操作时,如果是通过镜像ID进行镜像删除,那么由该镜像创建的容器必须提前删除或停止。另外,在通过镜像名称操作镜像时,如果出现镜像重名的情况,必须在镜像名称后面指定镜像标签tag参数来确保唯一性。

6.创建并启动容器
  Docker镜像主要用于创建容器,可以使用docker run指令创建并启动容器,具体使用方式如下。

$ docker run -d -p 5000:80 --name test hellodocker

  上述创建并启动容器的指令略微复杂,具体分析如下。
  ●docker run:表示创建并启动一个容器,而后面的hellodocker就表示要启动运行的镜像名称;
  ●-d:表示容器启动时在后台运行;
  ●-p 5000:80:表示将容器内暴露的80端口映射到宿主机指定的5000端口,也可以将-p 5000:80更改为-P来映射主机的随机端口(注意p字母的大小写);
  ●--name test:表示为创建后的容器指定名称为test,如果没有该参数配置,则生成的容器会设置一个随机名称。
  docker run命令是Docker操作中较为复杂的一个,它可以携带多个参数和参数,我们可以通过docker run --help指令进行查看,其中有些参数如-e、-v和-w等都可以在Dockerfile文件中预先声明。

7.列出容器
  生成容器后,可以通过docker ps指令查看当前运行的所有容器,具体使用方式如下。

$ docker ps

  执行上述命令后,会将所有当前运行的容器都展示出来,具体如下图所示。 alt

图1
  从图中可以看出,系统终端通过7列对当前的正在运行的一个容器进行了展示,图中每一列的具体含义如下。
  ●CONTAINER ID:表示生成的容器ID;
  ●IMAGE:表示生成该容器的镜像名称;
  ●COMMAND:表示启动容器时运行的命令,Docker要求在启动容器时必须运行一个命令;
  ●CREATED:表示容器创建的时间;
  ●STATUS:表示容器运行状态,例如Up表示运行中,Exited表示已停止;
  ●PORTS:表示容器内部暴露的端口映射到主机的端口;
  ●NAMES:表示生成容器的名称,由Docker引擎自动生成,可以像上述示例中使用--name参数指定生成容器的名称。
  另外,docker ps指令运行过程中可以指定多个参数,还可以通过docker ps --help指令对ps指令的其他信息进行查看。

8.删除容器
  当不需要使用容器时,则可以使用docker rm指令删除已停止的容器,具体使用方式如下。

$ docker rm f0c9a8b6e8c5

  需要注意的是,上述指令只能删除已经停止运行的容器,而不能删除正在运行的容器。如果想要删除正在运行的容器,则需要添加-f参数强制删除,具体使用方式如下。

$ docker rm -f f0c9a8b6e8c5

  当需要删除的容器过多时,如果还一个个的删除就略显麻烦了,此时可以通过如下指令将全部容器删除。

$ docker rm -f $(docker ps -aq)

  上述指令中,首先会通过$(docker ps -aq)获取所有容器的ID,然后通过docker rm -f指令进行强制删除。如果开发者有自己特殊的删除需求,可以根据前面docker ps指令进行组装来获取需要删除的容器ID。
  Docker提供的操作指令远不止这些,这里就不一一列举了,想要了解更多Docker的操作指令,可以通过docker --help指令进行查看。

用户想要评论,请先登录!
  1. 关于Docker虚拟容器的讲解挺好的额,学习中