- 用户在使用Docker时,使用Docker命令行工具
docker
与Docker daemon建立通讯。Docker daemon是Docker守护进程,负责接收并分发Docker命令。 - 使用
docker
命令或docker help
命令获取docker的命令清单。 - 用户可以使用
docker COMMAND --help
命令查看该子命令的详细信息。
子命令分类 | 子命令 |
---|---|
Docker环境信息 | info、version |
容器生命周期管理 | create、exec、kill、pause、restart、rm、run、start、stop、unpause |
镜像仓库命令 | login、logout、pull、push、search |
镜像管理 | build、images、import、load、rmi、save、tag、commit |
容器运维操作 | attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff |
系统日志信息 | events、history、logs |
1. Docker环境信息
$ sudo docker info
$ sudo docker version
2. 容器生命周期管理
●docker run
命令
用来基于特定的镜像创建一个容器,并依据选项来控制该容器。
docker run [OPTIONS] IMAG [COMMAND] [ARG...]
$ sudo docker run -i -t --name mytest ubuntu:latest /bin/bash"
-i
选项表示使用交互模式,始终保持输入流开放;-t
选项表示分配一个伪终端,一般两个参数结合事使用-it
,即可在容器中利用打开的伪终端进行交互操作;--name
选项可以指定docker run命令启动的容器的名字,若无此选项,则随机分配一个名字;-c
选项用于给在容器中的所有进程分配CPU的shares值,这是一个相对权重,实际的处理速度还与宿主机的CPU有关;-m
选项用于限制为容器中所有进程分配的内存总量,以B、K、M、G为单位;-v
选项用于挂载一个volume,可以用多个-v参数同时挂载多个volume。volume的格式位[host-dir]:[container-dir]:[rw|ro]
;-p
选项用于将容器的端口暴露给宿主机端口,其常用格式位hostPort:containerPort
。通过端口的暴露让外部主机通过宿主机暴露的端口访问容器内的应用。
●docker start/stop/restart
命令
对于已经存在的容器,通过此命令来启动、停止和重启。
$ sudo docker start -i -a mytest
-i
选项开启交互模式,始终保持输入流开放;-a
选项附加标准输入、输出或错误输出。
$ sudo docker stop/restart --time=10 mytest
-t
选项设定容器停止前等待时间。
3. 镜像仓库命令(Docker registry)
●docker pull
命令
用于从Docker registry中拉取image或repository。
docker pull [OPTIONS] NAME[:TAG]
# 从官方Hub拉取ubuntu:latest镜像
$ sudo docker pull ubuntu
# 从官方Hub拉取指明“ubuntu 12.04”tag的镜像
$ sudo docker pull ubuntu:ubuntu12.04
# 从特定的仓库拉取ubuntu镜像
$ sudo docker pull HU/ubuntu
# 从其他服务器拉取镜像
$ sudo docker pull 10.10.103.215:5000/sshd
●docker push
命令
将本地的image或repository推送到Docker Hub的公共或私有镜像库,以及私有服务器。
docker push NAME[:TAG]
$ sudo docker push HU/ubuntu
4. 镜像管理
●docker images
命令
通过docker images命令可以列出主机上的镜像,默认只列出最顶层的镜像,可以使用
-a
选项显示所有镜像。
docker images [OPTIONS] [NAME]
●docker rmi
和docker rm
命令
两个子命令的功能都是删除,docker rmi命令用于删除镜像,docker rm命令用于删除容器。
docker rm [OPTIONS] CONTAINER [CONTAINER...]
docker rmi [OPTIONS] IMAGE [IMAGE...]
5. 容器运维操作
●docker attach
命令
连接到正在运行的容器,观察该容器运行情况,或与容器的主进程进行交互。
docker attach [OPTIONS] CONTAINER
●docker inspect
命令
docker inspect命令可以产科镜像和容器的详细信息,默认会列出全部信息,可以通过
--format
参数来指定输出的模板格式。
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
# 查看容器的内部IP
$ sudo docker inspect --format='{{.NetworkSettings.IPAddress}}' ee36 172.17.0.8
●docker ps
命令
查看容器的相关信息,默认只显示正在运行的容器的信息。可以查看到的信息包括CONTAINER ID、NAMES、IMAGE、STATUS、容器启动后执行的COMMAND、创建时间CREATED和绑定开启的端口PORTS。docker ps命令最常用的功能就是查看容器的CONTAINER ID, 以便对特定容器进行操作。
docker ps [OPTIONS]
-a
参数可以查看所有容器,包括停止的容器;-l
选项则只查看最新创建的容器,包括不在运行中的容器。
6. 其他子命令
●docker commit
命令
commit命令可以将一个容器固化为一个新的镜像。当需要制作特定的镜像时,会进行修改容器的配置,如在容器中安装特定工具等,通过commit命令可以将这些修改保存起来,使其不会因为容器的停止而丢失。
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
●docker events|history|logs
命令
docker events|history|logs这三个命令用于查看Docker的系统日志信息。
docker events命令会打印出实时的系统事件;
docker history命令会打印出指定镜像的历史版本信息,即构建该镜像的每一层镜像的命令记录;
docker logs命令会打印出容器中进程的运行日志。
docker events [OPTIONS]
docker history [OPTIONS] IMAGE
docker logs [OPTIONS] CONTAINER