1、帮助类

1.1 docker 命令帮助

  1. docker --- 显示docker命令帮助

1.2 help 单个命令帮助

  1. docker <command> --help --- 显示某个命令帮助

2、Docker信息类

2.1 version 版本信息

  1. docker version --- 显示Docker版本信息

2.2 info 系统信息

  1. docker info --- 显示 Docker 系统信息,包括镜像和容器数等信息

2.3 inspect 镜像/容器的元数据

  1. docker inspect [OPTIONS] NAME|ID [NAME|ID...] --- 显示镜像或容器元数据
  2. -f : 指定返回值的模板文件。
  3. -s : 显示总的文件大小。
  4. --type : 为指定类型返回JSON

3、本地镜像类

3.1 images 显示镜像(常用)

  1. docker images [OPTIONS] [REPOSITORY[:TAG]] --- 列出本地镜像
  2. -a : 列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
  3. --digests : 显示镜像的摘要信息
  4. -f : 显示满足条件的镜像
  5. --format : 指定返回值的模板文件
  6. --no-trunc : 显示完整的镜像信息
  7. -q : 只显示镜像ID
  8. 【注】当存在多个相同名称和tag的镜像时,原有镜像名称和tag将会显示为<none>

3.2 rmi 删除镜像(常用)

  1. docker rmi [OPTIONS] IMAGE [IMAGE...] --- 删除本地一个或多个镜像
  2. -f : 强制删除
  3. --no-prune : 不移除该镜像的过程镜像,默认移除
  4. 【注】当某容器正在运行某一镜像时,如果需要删除该镜像,需要使用强制删除,但同时可能会导致显示容器信息时,IMAGE信息无法显示,容器难以识别。

3.2 tag 标记镜像(常用)

  1. docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] --- 标记本地镜像

3.4 save 镜像保存为tar包(常用)

  1. docker save [OPTIONS] IMAGE [IMAGE...] --- 将指定镜像保存成 tar 包,docker load的逆操作
  2. -o : 输出到的文件

3.5 load 从tar包载入镜像(常用)

  1. docker load [OPTIONS] --- tar 包载入镜像,docker save的逆操作
  2. -i : 从文件输入
  3. -q : 精简输出信息

3.6 export 从容器抽取镜像保存为tar包

  1. docker export [OPTIONS] CONTAINER --- 从容器抽取镜像并保存成 tar
  2. -o : 输出到的文件
  3. 【注】与save命令不同,从容器抽取的镜像会丢失镜像历史记录,导致镜像无法回滚到之前版本

3.7 import 从容器抽取的tar包载入镜像

  1. docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] --- 从归档文件中创建镜像
  2. -c : 应用Dockerfile指令创建镜像
  3. -m : 提交时的说明文字
  4. 【注】注意和docker load 的区别在于 import 可以自定义所创建镜像的信息

3.8 commit 从容器创建镜像

  1. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] --- 从容器创建一个新的本地镜像
  2. -a : 提交的镜像作者
  3. -c : 使用Dockerfile指令来创建镜像
  4. -m : 提交时的说明文字
  5. -p : commit时,将容器暂停

3.9 build 创建镜像

  1. docker build [OPTIONS] PATH | URL | - --- 使用Dockerfile创建镜像

3.10 history 镜像创建历史

  1. docker history [OPTIONS] IMAGE --- 查看指定镜像的创建历史
  2. -H : 以可读的格式打印镜像大小和日期,默认为true
  3. --no-trunc : 显示完整的提交记录
  4. -q : 仅列出提交记录ID

4、镜像仓库类

4.1 增加镜像仓库(常用)

  1. 当需要修改镜像仓库地址时候,需要修改如下文件
  2. /etc/default/docker
  3. 如需要增加镜像仓库地址为192.168.0.1,端口为6666,则需要增加如下记录
  4. DOCKER_OPTS="$DOCKER_OPTS --insecure-registry 192.168.0.1:6666"
  5. 增加完毕后重启docker服务
  6. service docker restart

4.2 pull 拉取镜像(常用)

  1. docker pull [OPTIONS] NAME[:TAG|@DIGEST] --- 从镜像仓库中拉取或者更新指定镜像
  2. -a : 拉取所有 tagged 镜像
  3. --disable-content-trust : 忽略镜像的校验,默认开启

4.3 push 上传镜像(常用)

  1. docker push [OPTIONS] NAME[:TAG] --- 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库

4.4 login/logout 登录/登出镜像仓库

  1. docker login [OPTIONS] [SERVER] --- 登录,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
  2. -u : 登陆的用户名
  3. -p : 登陆的密码
  4. ---------------
  5. docker logout [SERVER] --- 登出

4.5 search 从Docker Hub查找镜像

  1. docker search [OPTIONS] TERM --- Docker Hub查找镜像

5、容器操作类

5.1 ps 列出容器(常用)

  1. docker ps [OPTIONS] --- 列出容器
  2. -a : 显示所有的容器,包括未运行的。
  3. -f : 根据条件过滤显示的内容。
  4. --format : 指定返回值的模板文件。
  5. -l : 显示最近创建的容器。
  6. -n : 列出最近创建的n个容器。
  7. --no-trunc : 不截断输出。
  8. -q : 静默模式,只显示容器编号。
  9. -s : 显示总的文件大小。

5.2 attach 连接到容器(常用)

  1. docker attach [OPTIONS] CONTAINER --- 连接到正在运行的容器

5.3 top 查看容器内进程(常用)

  1. docker top CONTAINER [ps OPTIONS] --- 查看容器内运行的进程信息,可支持ps命令参数

5.4 rename 容器重命名

  1. docker rename CONTAINER NEW_NAME --- 容器重命名

5.5 stats 查看容器资源消耗

  1. docker stats [OPTIONS] [CONTAINER...] --- 查看容器的资源消耗情况

5.6 port 查看容器端口映射

  1. docker port CONTAINER [PRIVATE_PORT[/PROTO]] --- 查看容器端口映射信息,或者查找将PRIVATE_PORT NAT到面向公众的端口

5.7 wait 阻塞运行

  1. docker wait CONTAINER [CONTAINER...] --- 阻塞运行直到容器停止,然后打印出它的退出代码

5.8 logs 获取容器日志

  1. docker logs [OPTIONS] CONTAINER --- 获取容器日志
  2. -f : 跟踪日志输出
  3. --since : 显示某个开始时间的所有日志
  4. -t : 显示时间戳
  5. --tail : 仅列出最新N条容器日志

5.9 events 获取服务器实时事件

  1. docker events [OPTIONS] --- 阻塞运行直到容器停止,然后打印出它的退出代码
  2. -f : 根据条件过滤事件
  3. --since : 从指定的时间戳后显示所有事件
  4. --until : 流水时间显示到指定的时间为止

6、容器生命周期管理类

6.1 run 创建并运行容器(常用)

  1. docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --- 创建新容器并运行
  2. docker run 可使用option较多,仅列举一些常用参数,其他请参见docker帮助
  3. -d : 后台运行容器,并返回容器ID
  4. -i : 以交互模式运行容器,通常与 -t 同时使用;
  5. -t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  6. --privileged : 是否使用特权模式
  7. --env : 设置环境变量
  8. --name : 设置容器名称
  9. -p : 指定端口映射,格式为:主机(宿主)端口:容器端口
  10. -P : 随机端口映射,容器内部端口随机映射到主机的端口
  11. -v : 将外部卷嵌入容器
  12. /bin/bash : 以交互模式启动一个容器,在容器内执行/bin/bash命令

6.2 start 启动容器(常用)

  1. docker start [OPTIONS] CONTAINER [CONTAINER...] --- 启动已经停止运行的容器

6.3 stop 停止容器(常用)

  1. docker stop [OPTIONS] CONTAINER [CONTAINER...] --- 停止正在运行的容器

6.4 kill 强制停止容器(常用)

  1. docker kill [OPTIONS] CONTAINER [CONTAINER...] --- 强制停止容器
  2. -s : 向容器发送一个信号

6.5 restart 重启容器(常用)

  1. docker restart [OPTIONS] CONTAINER [CONTAINER...] --- 重启正在运行的容器

6.6 rm 删除容器(常用)

  1. docker rm [OPTIONS] CONTAINER [CONTAINER...] --- 删除容器
  2. -f : 通过SIGKILL信号强制删除一个运行中的容器
  3. -l : 移除容器间的网络连接,而非容器本身
  4. -v : -v 删除与容器关联的卷

6.7 exec 容器中执行命令(常用)

  1. docker exec [OPTIONS] CONTAINER COMMAND [ARG...] --- 在运行的容器中执行命令
  2. -d : 分离模式,在后台运行
  3. -i : 即使没有附加也保持STDIN 打开
  4. -t : 分配一个伪终端
  5. /bin/bash : 开启一个交互模式的终端

6.8 create 创建但不运行容器

  1. docker create [OPTIONS] IMAGE [COMMAND] [ARG...] --- 创建但不运行容器
  2. 【注】用法同docker run

6.9 pause/unpause 暂停/恢复容器进程

  1. docker pause CONTAINER [CONTAINER...] --- 暂停 容器内所有的进程
  2. docker unpause CONTAINER [CONTAINER...] --- 恢复 容器内所有的进程

7、容器rootfs类

7.1 cp 主机与容器间数据拷贝(常用)

  1. docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
  2. docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH --- 在主机与容器之间进行数据拷贝
  3. 【注】docker1.8版本之后才支持从主机拷贝文件至docker容器中,之前版本仅能支持将容器内文件拷贝至主机

7.2 diff 检查容器内文件结构更改

  1. docker diff CONTAINER --- 检查容器内文件结构更改

8、一些小技巧

8.1 不重新部署更换容器内可执行(exe)文件

  1. 1. 使用docker exec命令,以bash方式,进入容器
  2. 2. 将原有的exe文件更名,退出容器
  3. 3. 使用docker cp命令,将新exe文件拷贝到原exe文件位置
  4. 4. 使用docker restart命令,重启容器
  5. 5. 重启后,新的exe文件即生效运行