Docker 命令 Cheat Sheet

docker logo

所有命令都可以在 Docker 的官方文档1或其他参考网站2中找到完整的说明。

镜像仓库

官网镜像站 Docker Hub

  • pull 从镜像仓库中拉取或者更新指定镜像

    1
    2
    3
     # 不加 tag 默认为拉取 latest(最新)
     docker pull python
     docker pull python:2.7.13
    
  • search

    1
    2
     # -s:列出收藏数大于等于 10 的镜像
     docker search -s 10 java
    

容器生命周期管理

运行(创建)3

run:使用某一镜像创建一个新的容器(并运行一个命令)

1
2
3
# --name="hw":为容器指定一个别名,后续可以用来替代长长的 ID
# 日后 可以使用 rename 命令进行重命名
docker run --name="hw" hello-world

BTW,不指定 --name 时 Docker 会生成一个默认的名称,是对科学家的致敬,很有趣,具体可以参考这里

1
docker run -it -w /usr/src/test python /bin/bash

-i:以交互模式运行容器;-t:为容器重新分配一个伪输入终端。对于需要进行交互的容器,这两个参数常常连用。

-w / --workdir="":指定容器的工作目录(默认起始目录)

镜像名之后跟的是初始运行时的命令。这里表示运行 bash 交互界面,否则若容器没有命令可执行(执行完全部命令)就会停止运行。

后台运行

run 参数 -d

自启动

run 参数 --restart=always

若已经创建容器,可以使用 docker update container_name --restart=always 来更新 restart 策略。

同样地,取消容器的自启动(否则该容器无法被停止,因而也无法被删除)可以使用 docker update container_name --restart=no 来实现。

映射到主机

  • 端口映射 run 参数 -p

    1
    2
     # 将容器的 80 端口映射到主机的 8080 端口
     docker run -p 80:8080 nginx
    
  • 目录挂载 run 参数 -v

    1
    2
     # 将主机当前目录下的 test 目录挂载到容器的 /soft 目录(若不存在都会自动创建)
     docker run -itv $PWD/test:/soft centos /bin/bash
    

即使对同一个镜像,每次 run 得到的也是不同的容器。因此这里 run 的含义更倾向于创建并运行仅创建容器的命令为 create

启动时设定的参数如需更改,可以将容器打包(commit)为新的镜像并用其重新创建容器。

启动与停止

docker start / stop / restart

字面意思。后接容器的 ID 或名字。

另有 docker kill 命令可以强制终止容器。相比之下,stop 能让容器“gracefully shutdown”4

删除

docker rm

一般情况下只有停止运行后的容器才能被删除。可以通过参数 -f 强制删除一个运行中的容器。

容器操作

  • ps 命令:列出容器

    1
    2
     # -a : 显示所有的容器,包括未运行的(默认仅列出正在运行的)
     docker ps -a
    
  • attach 命令:连接到正在运行中的容器(即重新进入已创建的容器)

    容器在被 attach 前必须先被 start

    1
     docker start 739a1e1b0aee && docker attach 739a1e1b0aee
    
  • cp 命令:在容器与主机之间复制数据

    1
    2
     docker cp test.js 96f7f14e99ab:/test/
     docker cp 96f7f14e99ab:/test/test.js .
    
  • exec 命令:在运行的容器中执行命令

    1
    2
     # 在容器内使用 bash 运行脚本
     docker exec -it mypy /bin/sh /root/test.sh
    

关于 attachexec 命令的异同,可以参考 Docker 容器学习梳理 – 容器登陆方法梳理(attach、exec、nsenter)一文。

本地镜像管理

  • docker images

    列出本地镜像

参考链接

-------------本文结束    感谢您的阅读-------------
0%