容器的常用命令

基本命令

操作 命令(全) 命令(简)
容器的创建 docker container run docker run
容器的列出(up) docker container ls docker ps
容器的列出(up和exit) docker container ls -a docker ps -a
容器的停止 docker container stop docker stop
容器的删除 docker container rm docker rm

列出容器id

1
2
3
4
# 列出已运行的容器id
$ docker container ls -q
# 列出所有容器id
$ docker container ls -aq

批量停止容器

1
2
3
4
5
6
7
8
9
10
11
12
$ docker container ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd3a825fedeb nginx "/docker-entrypoint.…" 7 seconds ago Up 6 seconds 80/tcp mystifying_leakey
269494fe89fa nginx "/docker-entrypoint.…" 9 seconds ago Up 8 seconds 80/tcp funny_gauss
34b68af9deef nginx "/docker-entrypoint.…" 12 seconds ago Up 10 seconds 80/tcp interesting_mahavira
7513949674fc nginx "/docker-entrypoint.…" 13 seconds ago Up 12 seconds 80/tcp kind_nobel

# 可以只写容器id的前几位
$ docker container stop cd3 269 34b 751

# 停止所有已运行的容器
$ docker container stop $(docker container ls -q)

批量删除

和批量停止类似,可以使用 docker container rm $(docker container ls -aq)

docker system prune -a -f 可以快速对系统进行清理,删除停止的容器,不用的image,等等

查看容器占用的进程

1
$ docker container top <name or id>

容器运行的模式

容器运行时有两种模式,分别是 attach 和 detach

attach模式

范例指令: docker container run -p 80:80 nginx

  • 透过这种方式创建容器的话,容器在前台执行
  • 容器的输入输出结果会反映到本地端,本地端的输入输出也会反映到容器,例如能在终端机看到网页浏览器的 log,ctrl + c 会让容器停止执行
  • 一般情况不推荐使用

detach模式

范例指令: docker container run -d -p 80:80 nginx

  • 容器会在后台执行

查看 detach 模式下的日志: docker container logs <id or name>

连接容器的 shell

  • 创建一个容器并进入交互式模式
1
$ docker container run -it busybox sh
  • 在一个已经运行的容器里执行一个额外的command
1
2
3
4
5
$ docker container run -d nginx
33d2ee50cfc46b5ee0b290f6ad75d724551be50217f691e68d15722328f11ef6

$ docker container exec -it 33d sh