Docker容器的基本操作
容器的常用命令
基本命令
操作 | 命令(全) | 命令(简) |
---|---|---|
容器的创建 | 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
# 列出已运行的容器id
$ docker container ls -q
# 列出所有容器id
$ docker container ls -aq
批量停止容器
$ 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,等等
查看容器占用的进程
$ 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
- 创建一个容器并进入交互式模式
$ docker container run -it busybox sh
- 在一个已经运行的容器里执行一个额外的command
$ docker container run -d nginx
33d2ee50cfc46b5ee0b290f6ad75d724551be50217f691e68d15722328f11ef6
$ docker container exec -it 33d sh