当前位置: 首页 > news >正文

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

相关文章:

  • 8、HTTPD服务--ab压力测试
  • Java多线程入门案例详解:继承Thread类实现线程
  • mtrace和memleak源码分析
  • 从困局到破局的AI+数据分析
  • 【机器学习】​碳化硅器件剩余使用寿命稀疏数据深度学习预测
  • UE 滚动提示条材质制作
  • 民锋视角下的价格风险管理策略
  • 0805登录_注册_token_用户信息_退出-网络ajax请求2-react-仿低代码平台项目
  • 八大排序——快速排序/快排优化
  • 【javascript】竞速游戏前端优化:高频操作与并发请求的解决方案
  • jaffree 封装ffmpeg 转换视频格式,获取大小,时间,封面
  • 汤晓鸥:计算机视觉的开拓者与AI产业化的先行者
  • python数据分析(五):Pandas 数据检索技术
  • Android学习总结之Java篇(一)
  • 关于https请求丢字符串导致收到报文解密失败问题
  • java.lang.AssertionError: Binder ProxyMap has too many entries: 问题处理
  • 深入理解链表:从基础操作到高频面试题解析
  • Linux[开发工具]
  • 主流AI推理模型的详细说明、对比及总结表格
  • android录音生成wav
  • 买新房可申领学位,广州南沙出台购房入学政策
  • 上海112位全国劳动模范和先进工作者接受表彰,樊振东榜上有名
  • 庆祝中华全国总工会成立100周年暨全国劳动模范和先进工作者表彰大会隆重举行,习近平发表重要讲话
  • 扎克伯格怕“错过风口”?Meta AI数字伴侣被允许与未成年人讨论不当话题
  • 专业竞演、剧场LIVE直播,32位越剧新星逐梦上海
  • 跨海论汉|专访白馥兰:对中国农业史的兴趣,从翻译《齐民要术》开始