Docker常用操作指令
1.列出镜像
通过docker images指令可以查看本地镜像列表中已有的镜像。具体使用方式如下:
$ docker images
指令执行后,系统会将本地镜像列表分5列进行了展示,每一列的具体含义如下:
REPOSITORY:镜像名称
TAG:镜像的参数,类似于版本号,默认是latest
IMAGE ID:镜像ID,是唯一值
CREATED:距今创建镜像的时间
SIZE:镜像大小
2.搜索镜像
想知道在Docker Hub中包含了哪些镜像,一:可以登录Docker Hub在官网中心进行查看;二:直接在Docker客户端进行查询。查询Ubuntu镜像,可以使用指令如下:
$ docker search ubuntu
指令执行后,系统终端分5列将搜索到的有关Ubuntu的镜像展示出来,每一列的具体含义如下:
NAME:表示镜像名称,不带有“/”的表示官方镜像,带有“/”的表示其他用户的公开镜像。公开镜像“/”前面是用户在Docker Hub上的用户名(唯一),后面是对应的镜像名。
DESCRIPTION:表示镜像的描述。
STARS:表示镜像的收藏数。
OFFICIAL:表示是否为官方镜像(OK表示官方镜像)。
AUTOMATED:表示是否自动构建镜像。
3.拉取镜像
通过docker pull指令可以拉取仓库镜像到本地(默认都是拉去Docker Hub仓库镜像,也可以指定“IP+端口”拉取某个Docker机器上的私有仓库镜像),具体使用方式如下:
$ docker pull ubuntu #最新版本的Ubuntu
$ docker pull ubuntu:14.04 #指定版本的Ubuntu
4.构建镜像
通过docker build指令构建Docker镜像,通常情况下都是通过Dockerfile文件来构建镜像。使用两种方式进行镜像构建:
(1)在Dockerfile文件所在目录构建镜像
$ cd workspace/dockerspace/
$ docker build -t hellodocker2 .
进入Dockerfile文件所在目录后,使用docker build指令进行镜像构建,通过点”.“读取当前应用上下文中的Dockerfile文件进行镜像构建。
(2)在其他目录构建镜像
$ cd ~
$ docker build -t hellodocker3/home/shitou/workspace/dockerspace/.
5.删除镜像
当本地存放过多不需要的镜像时,可以通过docker rmi指令将其删除,在删除镜像时,需要指定镜像名称或镜像ID。使用方式如下:
$ docker rmi -f hellodocker2 hellodocker3
上述指令中,docker rmi表示删除镜像,-f表示强制删除,hellodocker2表示需要删除的镜像名称,可以替代为镜像ID。通过镜像ID进行镜像删除,由镜像创建的容器必须提前删除或停止,另外,通过镜像名称操作镜像时,如果操作的不是默认latest镜像,必须在镜像名称后面指定镜像标签tag参数来确保唯一性。
6.创建并启动容器
可以使用docker run指令创建并启动容器,具体使用方式如下:
$ docker run -d -p 5000:80 --name test hellodocker
上述指令,docker run表示创建并启动一个容器;-d 表示容器启动时在后台运行;-p 5000:80表示将容器内暴露的80端口映射到宿主机指定的5000端口,也可以将-p5000:80更改为-P来映射主机的随机端口(注意p字母的大小写);--name test表示为创建后的容器指定名称为test,如果没有该参数配置,则生成的容器会设置一个随机名称。
7.列出容器
通过docker ps指令查看当前运行的所有容器,具体使用方式如下:
$ docker ps
执行上述指令后,系统终端通过7列对当前正在运行的一个容器进行展示,每一列具体含义如下:
CONTAINER ID:生成的容器ID
IMAGE:生成该容器的镜像名称
COMMAND:启动容器时运行的命令,Docker要求在启动容器时必须运行一个命令
CREATED:容器创建的时间
STATUS:容器运行系统,Up表示运行中,Exited表示已停止
PORTS:容器内部暴露的端口映射到主机的端口
NAMES:生成容器的名称
8.执行命令
当生成容器后,客户端可以通过docker exec指令与运行的容器进行通信,在通信时需要指定容器ID或名称,具体使用方式如下:
$ docker exec f0c9a8b6e8c5 ls -l
9.停止容器
使用docker stop指令停止指定的容器,在停止容器时,需要指定容器ID或名称,具体使用方式如下:
$ docker stop f0c9a8b6e8c5
使用上述指令停止容器会有略微延迟,成功后会返回该容器ID,如果想要查看该容器,可以使用docker ps -a,也可以通过docker kill指令立即杀死运行的容器进程,使用该指令也需要指定容器ID或名称,具体使用方式如下:
$ docker kill f0c9a8b6e8c5
10.启动容器
容器停止后,如果需要重新访问该容器中的程序,则需要重新启动该容器,可以使用docker start指令来完成,具体使用方式如下:
$ docker start f0c9a8b6e8c5
可以使用docker restart指令重启容器,docker restart指令既可以重新启动已经停止的容器,也可以重启当前正在运行的容器,具体使用方式如下:
$ docker restart f0c9a8b6e8c5
11.删除容器
当不需要使用容器时,可以使用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 container | 管理容器 |
docker image | 管理镜像 |
docker network | 管理Docker网络 |
docker node | 管理Swarm集群节点 |
docker plugin | 管理插件 |
docker secret | 管理Docker机密 |
docker service | 管理Docker一些服务 |
docker stack | 管理Docker堆栈 |
docker swarm | 管理Swarm |
docker system | 管理Docker |
docker volume | 管理数据卷 |