【docker】docker常用命令汇总

发布于:2024-12-06 ⋅ 阅读:(31) ⋅ 点赞:(0)

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

网站公告

今日签到

点亮在社区的每一天
去签到