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

【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.使用案例

创建并运行容器

# 使用指定网络、挂载卷、环境变量等选项运行容器
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

# 使用指定 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 仓库。

资源限制和日志管理

# 运行容器时为其分配 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,超出时会删除最旧的日志。

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

# 停止所有的容器         
docker stop $(docker ps -q)        

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

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

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

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

常用组合命令

# 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

http://www.kler.cn/a/417335.html

相关文章:

  • Rust unresolved import `crate::xxx` 报错解决
  • C++ 课程学习笔记:从对象生命周期看资源管理之道
  • 通过多层混合MTL结构提升股票市场预测的准确性,R²最高为0.98
  • 探索 GraphQL:API 设计的未来趋势
  • arm 下 多线程访问同一变量 ,使用原子操作 性能差问题
  • neo4j-在Linux中安装neo4j
  • SpringCloud 详解
  • 数据分析的尽头是web APP?
  • 使用C#开发VTK笔记(二)Part1-VTK系统结构解析
  • 使用Github Action将Docker镜像转存到阿里云私有仓库,供国内服务器使用,免费易用
  • TouchGFX源码分析1---(Event类 和Click Event类)
  • C++多态的实现原理
  • 最短距离和路径问题 ford
  • 数据结构-图-领接表存储
  • HDLCPPP原理与配置
  • 关于最近win11不能使用ie,而不能使用考试客户端的解决方法
  • 人工智能 实验2 jupyter notebook平台 打印出分类器的正确率
  • 11 设计模式之代理模式(送资料案例)
  • 373. 查找和最小的 K 对数字
  • QTableView 实现表格及相关用法(C++)(QStandardItemModel+QItemSelectionModel)
  • [Linux] 进程间通信——匿名管道命名管道
  • 提升异步编程性能:使用 uvloop 加速你的 Python 应用
  • 云硬盘挂载到新服务器,怎么恢复数据?
  • 命令提示符窗口(CMD)控制windows操作系统
  • MySQL自启动失败(MySQL不能开机自启)解决方案_MySQL开机自启疑难杂症解决,适用Win11/Win10
  • Redis 分布式锁实现方案