常用Docker命令
2022-5-6 大约 2 分钟
# 常用Docker命令
# 管理镜像
# docker build
从Dockerfile创建一个镜像
docker build [options] .
-t "app/container_name" # 名称
--build-arg APP_HOME=$APP_HOME # 设置构建时间变量
1
2
3
2
3
# docker run
docker run [options] IMAGE
# 选项参见 `docker create`
1
2
2
# 示例
$ docker run -it debian:buster /bin/bash
1
在容器中运行bash
# 管理容器
# docker create
docker create [options] IMAGE
-a, --attach # 附加stdout/err
-i, --interactive # 附加stdin
-t, --tty # tty
--name NAME # 命名镜像
-p, --publish 5000:5000 # 端口映射(主机:容器)
--expose 5432 # 将一个端口暴露给链接的容器
-P, --publish-all # 发布所有端口
--link container:alias # linking
-v, --volume `pwd`:/app # mount (需要绝对路径)
-e, --env NAME=hello # 环境变量
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 示例
$ docker create --name app_redis_1 \
--expose 6379 \
redis:3.0.2
1
2
3
2
3
创建一个 redis 容器
# docker exec
docker exec [options] CONTAINER COMMAND
-d, --detach # run in background
-i, --interactive # stdin
-t, --tty # interactive
1
2
3
4
2
3
4
# 示例
$ docker exec app_web_1 tail logs/development.log
$ docker exec -t -i app_web_1 rails c
1
2
2
进入容器并运行命令
# docker start
docker start [options] CONTAINER
-a, --attach # attach stdout/err
-i, --interactive # attach stdin
docker stop [options] CONTAINER
1
2
3
4
5
2
3
4
5
启动/停止容器
# docker update
docker update --restart unless-stopped CONTAINER
1
设置容器的启动策略
# docker ps
$ docker ps
$ docker ps -a
$ docker kill $ID
1
2
3
2
3
使用 ps 和 kill 管理容器
# docker logs
$ docker logs CONTAINER_ID
$ docker logs CONTAINER_ID 2>&1 | less
$ docker logs -f CONTAINER_ID
1
2
3
2
3
查看容器日志
# 镜像
# docker images
$ docker images
REPOSITORY TAG ID
ubuntu 12.10 b750fe78269d
me/myapp latest 7b2431a8d968
1
2
3
4
2
3
4
$ docker images -a
1
# docker rmi
docker rmi IMAGE_ID
1
删除镜像
# 清理
# 清理所有
docker system prune
1
清理悬空的(即不与容器相关联)镜像、容器、卷和网络。
docker system prune -a
1
删除任何停止的容器和所有未使用的镜像
# 容器
# 停止所有正在运行的容器
docker stop $(docker ps -a -q)
# 删除停止的容器
docker container prune
1
2
3
4
5
2
3
4
5
# 镜像
docker image prune [-a]
1
删除所有的镜像
# 数据卷
docker volume prune
1
删除所有的数据卷