Docker 常用命令(涵盖多个方面)
Docker 命令完整列表(表格形式)
类别 | 命令 | 描述 | 示例 |
Docker 服务管理 | |||
sudo systemctl start docker | 启动 Docker 守护进程 | sudo systemctl start docker | |
sudo systemctl stop docker | 停止 Docker 守护进程,需先停止所有容器 | sudo systemctl stop docker | |
sudo systemctl restart docker | 重启 Docker 守护进程以应用配置更改 | sudo systemctl restart docker | |
sudo systemctl status docker | 检查 Docker 服务状态,active (running) 表示正常 | sudo systemctl status docker | |
sudo systemctl enable docker | 启用 Docker 开机自启 | sudo systemctl enable docker | |
sudo systemctl disable docker | 禁用 Docker 开机自启 | sudo systemctl disable docker | |
容器管理 | |||
sudo docker ps | 列出运行中的容器 | sudo docker ps | |
sudo docker ps -a | 列出所有容器(包括已停止) | sudo docker ps -a | |
sudo docker ps --format "{{.ID}} {{.Names}} {{.Image}} {{.Status}} {{.Ports}}" | awk '{printf "%-15s %-10s %-35s %-25s %-30s\n", $1, $2, $3, $4, $5}' | 美化容器信息输出,显示 ID、名称、镜像、状态和端口 | sudo docker ps --format ... | |
sudo docker stop $(sudo docker ps -q) | 停止所有运行中的容器 | sudo docker stop $(sudo docker ps -q) | |
sudo docker start $(sudo docker ps -aq) | 启动所有容器(包括已停止) | sudo docker start $(sudo docker ps -aq) | |
sudo docker restart $(sudo docker ps -q) | 重启所有运行中的容器 | sudo docker restart $(sudo docker ps -q) | |
sudo docker rm $(sudo docker ps -a -q -f "status=exited") | 删除所有已停止的容器 | sudo docker rm $(sudo docker ps -a -q -f "status=exited") | |
sudo docker rm -f <容器名或ID> | 强制删除容器(包括运行中的) | sudo docker rm -f kibana | |
sudo docker run -d --name <容器名> <镜像名> | 后台运行新容器 | sudo docker run -d --name test_nginx nginx | |
sudo docker run -it <镜像名> /bin/bash | 运行容器并进入交互式终端 | sudo docker run -it ubuntu /bin/bash | |
sudo docker exec -it <容器名> /bin/bash | 进入运行中容器的交互式终端 | sudo docker exec -it kibana /bin/bash | |
sudo docker logs <容器名> | 查看容器日志 | sudo docker logs kibana | |
sudo docker logs -f <容器名> | 实时查看容器日志,类似 tail -f | sudo docker logs -f kibana | |
sudo docker top <容器名> | 查看容器内运行进程 | sudo docker top kibana | |
sudo docker stats --no-stream | 显示所有容器资源使用情况(CPU、内存、网络) | sudo docker stats --no-stream | |
sudo docker inspect <容器名或ID> | 查看容器详细信息 | sudo docker inspect kibana | |
sudo docker inspect <容器名或ID> | grep -i IPAddress | 查看指定容器 IP 地址 | sudo docker inspect kibana | grep -i IPAddress | |
sudo docker inspect <容器名或ID> --format '{{range $net, $conf := .NetworkSettings.Networks}}{{$net}}: {{$conf.IPAddress}}{{end}}' | 查看容器所有网络的 IP 地址 | sudo docker inspect kibana --format ... | |
sudo docker inspect <容器名或ID> | jq -r '.[0].NetworkSettings.Networks[].IPAddress' | 使用 jq 解析容器 IP(需安装 jq) | sudo docker inspect kibana | jq ... | |
sudo docker ps -q | xargs -n 1 sudo docker inspect --format '{{.Name}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' | 查看所有运行中容器的 IP 地址 | sudo docker ps -q | xargs ... | |
sudo docker ps -a -q | xargs -n 1 sudo docker inspect --format '{{.Name}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} {{.NetworkSettings.Ports}}' | 查看所有容器(包括已停止)的 IP 和端口 | sudo docker ps -a -q | xargs ... | |
for name in $(sudo docker ps --format '{{.Names}}'); do cid=$(sudo docker ps -q -f name=$name); echo "IP for $name ($cid):"; sudo docker inspect $cid | grep -i IPAddress; done | 循环查看所有运行中容器的 IP 地址 | for name in $(sudo docker ps ...) | |
sudo docker pause <容器名> | 暂停容器运行 | sudo docker pause kibana | |
sudo docker unpause <容器名> | 恢复暂停的容器 | sudo docker unpause kibana | |
sudo docker kill <容器名或ID> | 立即终止容器 | sudo docker kill kibana | |
sudo docker rename <旧容器名> <新容器名> | 重命名容器 | sudo docker rename kibana kibana_new | |
sudo docker diff <容器名> | 查看容器文件系统变化 | sudo docker diff kibana | |
sudo docker cp <容器名>:<容器内路径> <宿主机路径> | 从容器复制文件到宿主机 | sudo docker cp kibana:/log log_dir | |
sudo docker cp <宿主机路径> <容器名>:<容器内路径> | 从宿主机复制文件到容器 | sudo docker cp log_dir kibana:/log | |
sudo docker events | 实时查看 Docker 事件(容器创建、停止等) | sudo docker events | |
镜像管理 | |||
sudo docker images | 列出所有镜像 | sudo docker images | |
sudo docker pull <镜像名:标签> | 拉取镜像 | sudo docker pull ghcr.io/telekom-security/kibana:24.04.1 | |
sudo docker rmi <镜像ID或名称> | 删除指定镜像 | sudo docker rmi kibana:24.04.1 | |
sudo docker image prune -a | 清理所有未使用镜像 | sudo docker image prune -a | |
sudo docker build -t <镜像名> <路径> | 从 Dockerfile 构建镜像 | sudo docker build -t my-custom-ee:latest . | |
sudo docker commit <容器名> <新镜像名> | 从容器创建新镜像 | sudo docker commit kibana kibana_custom:1.0 | |
sudo docker tag <源镜像名> <目标镜像名> | 为镜像创建新标签 | sudo docker tag kibana:24.04.1 kibana:latest | |
sudo docker push <镜像名> | 推送镜像到注册表 | sudo docker push my-custom-ee:latest | |
sudo docker save <镜像名> -o <文件名.tar> | 导出镜像为 tar 文件 | sudo docker save my-custom-ee:latest -o my-custom-ee.tar | |
sudo docker load -i <文件名.tar> | 从 tar 文件导入镜像 | sudo docker load -i my-custom-ee.tar | |
sudo docker export <容器名> > <文件名.tar> | 导出容器为 tar 文件 | sudo docker export kibana > kibana_backup.tar | |
sudo docker import <文件名.tar> <新镜像名> | 从 tar 文件导入镜像 | sudo docker import kibana_backup.tar kibana_imported:1.0 | |
sudo docker history <镜像名> | 查看镜像历史(分层信息) | sudo docker history kibana:24.04.1 | |
sudo docker image ls | 列出镜像(同 docker images) | sudo docker image ls | |
sudo docker image rm <镜像名> | 删除镜像(同 docker rmi) | sudo docker image rm kibana:24.04.1 | |
sudo docker image inspect <镜像名> | 查看镜像详细信息 | sudo docker image inspect kibana:24.04.1 | |
网络管理 | |||
sudo docker network ls | 列出所有 Docker 网络 | sudo docker network ls | |
sudo docker network create --subnet <子网> <网络名> | 创建新网络 | sudo docker network create --subnet 192.168.10.0/28 honeypot-net2 | |
sudo docker network rm <网络名> | 删除指定网络 | sudo docker network rm honeypot-net2 | |
sudo docker network prune -f | 清理所有未使用网络 | sudo docker network prune -f | |
sudo docker network inspect <网络名> | 检查网络详情(IP 分配等) | sudo docker network inspect honeypot-net2 | |
sudo docker network connect <网络名> <容器ID> | 连接容器到网络 | sudo docker network connect honeypot-net2 137f34922932 | |
sudo docker network disconnect <网络名> <容器ID> | 断开容器与网络连接 | sudo docker network disconnect honeypot-net2 5d541a5678d0 | |
sudo docker network inspect <网络名> | grep -A 5 IPAM | 查看网络的 IP 地址池配置 | sudo docker network inspect honeypot-net2 | grep -A 5 IPAM | |
sudo docker network inspect <网络名> | jq -r '.[] | .Containers | to_entries[] | "\(.value.Name): \(.value.IPv4Address)"' | 查看网络中所有容器的 IP(需 jq) | sudo docker network inspect honeypot-net2 | jq ... | |
sudo docker network ls --format '{{.Name}}' | xargs -n 1 sudo docker network inspect --format '{{.Name}} {{range .IPAM.Config}}{{.Subnet}}{{end}}' | 查看所有网络的 IP 地址池配置 | sudo docker network ls --format ... | |
卷管理 | |||
sudo docker volume ls | 列出所有卷 | sudo docker volume ls | |
sudo docker volume create <卷名> | 创建新卷 | sudo docker volume create tpot_data | |
sudo docker volume rm <卷名> | 删除指定卷(需未被使用) | sudo docker volume rm tpot_data | |
sudo docker volume prune | 清理所有未使用卷 | sudo docker volume prune | |
sudo docker volume inspect <卷名> | 检查卷详细信息 | sudo docker volume inspect tpot_data | |
sudo docker run -v <卷名>:<容器内路径> <镜像名> | 运行容器并挂载卷 | sudo docker run -v tpot_data:/data nginx | |
sudo docker volume ls -q | xargs -n 1 sudo docker volume inspect --format '{{.Name}} {{.Mountpoint}}' | 查看所有卷的挂载点 | sudo docker volume ls -q | xargs ... | |
sudo docker run --mount source=<卷名>,target=<容器内路径> <镜像名> | 使用 --mount 挂载卷 | sudo docker run --mount source=tpot_data,target=/data nginx | |
系统管理 | |||
sudo docker info | 显示 Docker 系统信息(容器数、镜像数等) | sudo docker info | |
sudo docker system prune -af | 清理所有未使用 Docker 对象(容器、网络、镜像) | sudo docker system prune -af | |
sudo docker system df | 显示 Docker 磁盘使用情况 | sudo docker system df | |
sudo docker version | 显示 Docker 客户端和服务器版本 | sudo docker version | |
sudo docker info --format '{{.ServerVersion}}' | 查看 Docker 服务器版本 | sudo docker info --format '{{.ServerVersion}}' | |
sudo docker system events | 实时查看 Docker 系统事件(同 docker events) | sudo docker system events | |
sudo docker system info | 查看系统信息(同 docker info) | sudo docker system info | |
其他命令 | |||
sudo docker login | 登录 Docker 注册表 | sudo docker login | |
sudo docker logout | 登出 Docker 注册表 | sudo docker logout | |
sudo docker search <关键字> | 搜索 Docker Hub 上的镜像 | sudo docker search nginx | |
sudo docker plugin ls | 列出所有 Docker 插件 | sudo docker plugin ls | |
sudo docker plugin install <插件名> | 安装 Docker 插件 | sudo docker plugin install store/nginx/nginx:1.0 | |
sudo docker plugin rm <插件名> | 删除 Docker 插件 | sudo docker plugin rm store/nginx/nginx:1.0 | |
sudo docker checkpoint create <容器名> <检查点名> | 创建容器检查点(实验性功能) | sudo docker checkpoint create kibana checkpoint1 | |
sudo docker checkpoint ls <容器名> | 列出容器检查点 | sudo docker checkpoint ls kibana | |
sudo docker checkpoint rm <容器名> <检查点名> | 删除容器检查点 | sudo docker checkpoint rm kibana checkpoint1 | |
sudo docker trust sign <镜像名> | 签署镜像以增强安全性 | sudo docker trust sign my-custom-ee:latest | |
sudo docker trust inspect <镜像名> | 检查镜像的签名信息 | sudo docker trust inspect my-custom-ee:latest | |
sudo docker context ls | 列出 Docker 上下文(多主机管理) | sudo docker context ls | |
sudo docker context create <上下文名> --docker host=<主机地址> | 创建新 Docker 上下文 | sudo docker context create remote --docker host=tcp://192.168.1.100:2375 | |
sudo docker context use <上下文名> | 切换 Docker 上下文 | sudo docker context use remote | |
sudo docker manifest create <镜像名> <镜像列表> | 创建多架构镜像清单 | sudo docker manifest create my-image:latest my-image:amd64 my-image:arm64 | |
sudo docker manifest push <镜像名> | 推送多架构镜像清单 | sudo docker manifest push my-image:latest | |
sudo docker manifest inspect <镜像名> | 检查多架构镜像清单 | sudo docker manifest inspect my-image:latest |