【docker】docker常用命令汇总

1.Docker 常用命令总结表格

Docker 环境信息命令

命令 作用
docker version 查看 Docker 客户端和服务端的版本信息
docker info 查看 Docker 系统的详细信息,包括存储驱动、内核版本等
docker inspect <name or id> 获取容器或镜像的详细配置信息
docker system df 查看 Docker 所有资源的磁盘使用情况

系统日志信息常用命令

命令 作用
docker logs <name or id> 查看容器的日志
docker logs -f <name or id> 实时跟踪容器日志
docker events 查看 Docker 的事件流,实时显示系统事件

容器的生命周期管理命令

命令 作用
docker create 创建一个容器但不启动
docker run 创建并启动一个容器
docker start <name or id> 启动已经停止的容器
docker stop <name or id> 停止一个正在运行的容器
docker rm <name or id> 删除一个容器

容器运维操作命令

命令 作用
docker exec <name or id> 在运行中的容器中执行命令
docker cp <src> <dest> 在主机与容器间复制文件
docker stats 查看容器的实时资源使用情况
docker top <name or id> 查看容器内正在运行的进程

镜像管理命令

命令 作用

| docker images | 列出所有本地镜像 |

| docker pull <image> | 从仓库拉取镜像 |

| docker build -t <name> | 从 Dockerfile 构建镜像 |

| docker rmi <image> | 删除本地镜像 |

镜像仓库命令

命令 作用

| docker login | 登录 Docker 仓库 |

| docker logout | 登出 Docker 仓库 |

| docker push <image> | 推送镜像到仓库 |

| docker tag <image> <repo:tag> | 为镜像打标签 |


2.使用案例

创建并运行容器

bash 复制代码
# 使用指定网络、挂载卷、环境变量等选项运行容器
docker run -d \
  --name myapp-container \
  -p 8080:80 \
  -e ENVIRONMENT=production \
  --network my-network \
  -v /host/data:/container/data \
  --restart always \
  nginx

参数解释:

  • -d: 后台运行容器。
  • --name: 指定容器名称。
  • -p 8080:80: 将容器内的80端口映射到宿主机的8080端口。
  • -e ENVIRONMENT=production: 设置环境变量 ENVIRONMENT 为 production。
  • --network my-network: 使用指定的 Docker 网络 my-network。
  • -v /host/data:/container/data: 将宿主机的 /host/data 目录挂载到容器内的 - /container/data。
  • --restart always: 设置容器重启策略为总是重启。

构建镜像并推送到 Docker Hub

bash 复制代码
# 使用指定 Dockerfile 构建镜像,并将其推送到 Docker Hub 仓库
docker build -t myusername/myapp:latest .

# 登录 Docker Hub
docker login

# 推送镜像到 Docker Hub
docker push myusername/myapp:latest

参数解释:

  • docker build -t myusername/myapp:latest .: 在当前目录下使用 Dockerfile 构建镜像,并命名为 myusername/myapp:latest。
  • docker login: 登录到 Docker Hub 以便推送镜像。
  • docker push: 将构建的镜像推送到指定的 Docker Hub 仓库。

资源限制和日志管理

bash 复制代码
# 运行容器时为其分配 CPU 和内存限制
docker run -d \
  --name myapp-container \
  -p 8080:80 \
  --memory="512m" \
  --cpus="1.0" \
  nginx

# 查看容器日志并指定时间范围
docker logs --since="2024-11-29T10:00:00" --until="2024-11-29T12:00:00" myapp-container

# 使用日志驱动程序配置容器
docker run -d \
  --name myapp-container \
  -p 8080:80 \
  --log-driver=json-file \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  nginx

参数解释:

  • --memory="512m": 为容器限制最大内存为 512MB。
  • --cpus="1.0": 为容器分配 1 个 CPU。
  • --since 和 --until: 限制查看日志的时间范围。
  • --log-driver=json-file: 使用 json-file 日志驱动,记录容器日志到 JSON 文件。
  • --log-opt max-size=10m: 限制日志文件的最大大小为 10MB。
  • --log-opt max-file=3: 设置最大日志文件数目为 3,超出时会删除最旧的日志。

定期清理不再使用的镜像和容器

bash 复制代码
# 停止所有的容器         
docker stop $(docker ps -q)        

# 清理所有停止的容器         
docker container prune         

# 清理所有未使用的镜像         
docker image prune -a         

# 清理未使用的网络         
docker network prune         

# 清理所有未使用的卷         
docker volume prune         

常用组合命令

bash 复制代码
# 1. 停止所有运行中的容器
docker stop $(docker ps -q)

# 2. 删除所有停止的容器
docker rm $(docker ps -a -q -f status=exited)

# 3. 删除所有未使用的镜像
docker image prune -a -f

# 4. 清理所有未使用的镜像、容器、网络和卷
docker system prune -a -f --volumes

# 5. 查找并删除所有悬空镜像
docker rmi $(docker images -f "dangling=true" -q)

# 6. 查看容器的资源使用情况并实时监控
docker stats $(docker ps -q)

# 7. 查看所有容器的日志并实时跟踪
docker logs -f $(docker ps -q)

# 8. 为多个容器执行相同的命令
docker exec -it $(docker ps -q) /bin/bash

# 9. 查看所有容器的状态并格式化输出
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"

# 10. 批量停止并删除容器
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)

# 11. 查找并删除所有未使用的 Docker 网络
docker network prune -f

# 12. 查看所有容器的 CPU 和内存使用情况
docker stats --all --no-stream

# 13. 为多个容器批量执行相同的操作(如启动)
docker start $(docker ps -a -q -f "status=exited")

# 14. 删除所有无标签的镜像并清理缓存
docker rmi $(docker images -f "dangling=true" -q) && docker builder prune -f
相关推荐
it噩梦29 分钟前
k8s Quality of Service
云原生·容器·kubernetes
{⌐■_■}1 小时前
【docker】docker build上下文
java·docker·容器
安静读书3 小时前
Docker使用教程
运维·docker·容器
白手小弟4 小时前
docker部署RustDesk自建服务器
运维·docker·容器
Gooooa4 小时前
docker运行jar包脚本【备忘】
运维·docker·容器
yours_Gabriel4 小时前
【微服务】Docker
docker·微服务·架构
AcrelXHJ6 小时前
安科瑞分布式光伏监控系统在上海宝钢阿赛洛激光拼焊有限公司屋顶光伏发电(二期)项目中应用
docker
不久之7 小时前
hue可以插入数据到部署在docker上的cdh中的hive,但是datagrip连接的hive插入报错
大数据·运维·hive·hadoop·docker·容器·spark
LeonNo117 小时前
k8s,进一步理解Pod
云原生·容器·kubernetes
duration~7 小时前
容器运行应用及Docker命令
java·docker·eureka