ctrlcv-dev.comgithub

Docker CLIcheatsheet

贡献者:BAI

管理镜像

docker build

YML
docker build [options] .
-t "app/container_name" # name
--build-arg APP_HOME=$APP_HOME # 设置 build 参数

docker run

SHELL
docker run [options] IMAGE
# 具体参数参见 `docker create`
# 举例
docker run -it debian:buster /bin/bash

管理 Container

docker create

YML
docker create [options] IMAGE
-a, --attach # attach
-i, --interactive # attach 交互模式
-t, --tty # pseudo-tty
--name NAME # 设置名称
-p, --publish 5000:5000 # 端口映射
--expose 5432 # 向已连接的 Container 暴露的端口
-P, --publish-all # 发布全部端口
--link container:alias # 连接 Container
-v, --volume `pwd`:/app # 挂载(需要绝对路径)
-e, --env NAME=hello # 环境变量
SHELL
$ docker create --name app_redis_1 \
--expose 6379 \
redis:3.0.2

docker exec

YML
docker exec [options] CONTAINER COMMAND
-d, --detach # 后台运行
-i, --interactive
-t, --tty
SHELL
docker exec app_web_1 tail logs/development.log
docker exec -t -i app_web_1 rails c

docker start

YML
docker start [options] CONTAINER
-a, --attach
-i, --interactive
docker stop [options] CONTAINER

docker ps

SHELL
docker ps
docker ps -a
docker kill $ID

docker logs

SHELL
docker logs $ID
docker logs $ID 2>&1 | less
docker logs -f $ID

镜像

docker images

SHELL
docker images
REPOSITORY TAG ID
ubuntu 12.10 b750fe78269d
me/myapp latest 7b2431a8d968
SHELL
docker images -a

docker rmi

YML
docker rmi b750fe78269d

Deletes images.

清理

全部清理

SHELL
docker system prune

清理挂载的镜像、Container、Volume、和网络

SHELL
docker system prune -a

还会清理全部已停止的 Container 和所有未使用的镜像(不仅仅是已挂载的镜像)

Containers

SH
# 停止全部正在运行的 Container
docker stop $(docker ps -a -q)
# 删除已停止的 Container
docker container prune

镜像

SH
# 删除全部镜像
docker image prune [-a]

Volumes

SH
# 删除全部 Volume
docker volume prune

参考资料