[toc]

docker命令

docker信息

docker版本

1
docker version

docker环境

1
docker info

容器管理

容器信息

1
2
3
4
5
6
7
8
9
# 当前正在运行的容器
docker container ls
# 简化
docker ps

# 所有的容器信息
docker container ls -a
# 简化
docker ps -a

创建容器

1
2
3
4
5
6
# 启动一个容器
docker container run [imageName]
# 简化
docker run [imageName]
# 端口映射 -p
docker container run -p 80:80 [imageName]

容器attached和detached两种模式

attached:前台执行,Linux系统中不加参数默认Run为此模式,Ctrl+C后容器会被停止

detached:后台执行,命令中加参数 -d

1
2
3
4
# detached模式执行
docker container run -d [imageName]
# 直接启动容器的交互页面
docker container run -it [imageName]:[imageTag] sh

容器日志

容器在detached模式运行时结果只有一个容器Id,如果想查看运行时日志则需要logs命令

1
2
3
4
# 查看容器日志
docker container logs [container name or Id]
# 动态跟踪Log -f
docker container logs -f [container name or Id]

容器交互

1
2
3
# 与容器进行shell交互
docker container exec -it [container name or ID] sh
docker container exec -it [container name or ID] /bin/bash

停止容器

1
2
3
4
# 停止容器
docker container stop [container name or Id]
# 简化
docker stop [container name or Id]

重启容器

1
2
3
4
# 停止容器
docker container restart [container name or Id]
# 简化
docker restart [container name or Id]

删除容器

1
2
3
4
5
6
# 删除容器
docker container rm [container name or Id]
# 简化
docker rm [container name or Id]
# 强制删除 增加 -f
docker container rm -f [container name or Id]

镜像管理

1
2
3
4
# 列出当前系统中的镜像
docker image ls
# 删除镜像
docker image rm [imageName]

构建镜像

1
2
# 在当前目录下找到dockerfile文件并创建 imageName:imageVersion 的镜像
docker image build -t [imageName]:[imageVersion] .

小技巧

容器的批量操作

docker contianer ps -aq 加了-q的查询结果只有容器id,使用方式举例如下:

1
2
3
4
# 批零停止所有容器
docker container stop $(docker container ps -aq)
#根据容器的状态,删除Exited状态的容器
sudo docker rm $(sudo docker ps -qf status=exited)

镜像的批量操作

1
2
# 删除所有tag标签是none的镜像
docker images|grep none|awk '{print $3 }'|xargs docker rmi

容器内容复制出来

1
2
# cp命令 例子如下:
docker cp nginx:/etc/nginx/conf.d/default.conf /opt/docker/nginx/conf.d/default.conf

清理docker

1
2
3
4
5
6
7
8
9
10
11
12
docker system prune

该指令默认会清除所有如下资源:
已停止的容器(container)
未被任何容器所使用的卷(volume)
未被任何容器所关联的网络(network)
所有悬空镜像(image)
该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
添加 -a 或 --all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
可以添加 -f 或 --force 参数用以忽略相关告警确认信息

注意:docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了…所以使用之前一定要想清楚.。我没用过,因为会清理 没有开启的 Docker 镜像