docker常用命令

目录

一、镜像(Image)操作

二、容器(Container)操作

[1. 生命周期管理](#1. 生命周期管理)

[2. 查看与监控](#2. 查看与监控)

[3. 数据操作](#3. 数据操作)

三、网络(Network)操作

四、卷(Volume)操作

五、系统维护

六、组合命令(高效操作)

七、日志管理

[八、Docker Compose 常用命令](#八、Docker Compose 常用命令)

九、配置别名(简化操作)

十、可视化工具推荐


Docker 中操作镜像(Image)、容器(Container)等核心资源的常用命令大全,按功能分类整理:


一、镜像(Image)操作

命令 说明 示例
docker images 列出本地镜像 docker images -a (含中间层镜像)
docker pull 拉取镜像 docker pull ubuntu:22.04
docker build 构建镜像 docker build -t myapp:v1 .
docker rmi 删除镜像 docker rmi nginx:alpine
docker image prune 清理悬空镜像 docker image prune -a (清理所有未使用镜像)
docker save 导出镜像 docker save -o nginx.tar nginx
docker load 导入镜像 docker load -i nginx.tar
docker history 查看镜像构建历史 docker history nginx
docker tag 标记镜像 docker tag nginx myrepo/nginx:v2

二、容器(Container)操作

1. 生命周期管理
命令 说明 示例
docker run 创建并启动容器 docker run -d -p 80:80 --name webserver nginx
docker start/stop/restart 启停容器 docker stop webserver
docker rm 删除容器 docker rm -f webserver (强制删除运行中容器)
docker create 创建但不启动 docker create --name temp ubuntu
docker exec 在运行中容器执行命令 docker exec -it webserver bash
docker update 更新容器配置 docker update --memory 512M webserver
2. 查看与监控
命令 说明 示例
docker ps 列出容器 docker ps -a (含停止的容器)
docker logs 查看容器日志 docker logs -f webserver (实时日志)
docker top 查看容器进程 docker top webserver
docker stats 实时资源监控 docker stats (所有容器)
docker inspect 查看容器详情 docker inspect webserver
docker port 查看端口映射 docker port webserver 80
docker diff 查看文件变更 docker diff webserver
3. 数据操作
命令 说明 示例
docker cp 复制文件 docker cp webserver:/etc/nginx .
docker commit 创建新镜像 docker commit webserver mynginx

三、网络(Network)操作

命令 说明 示例
docker network ls 列出网络
docker network create 创建网络 docker network create mynet
docker network inspect 查看网络详情 docker network inspect bridge
docker network connect 连接容器到网络 docker network connect mynet webserver
docker network prune 清理未使用网络

四、卷(Volume)操作

命令 说明 示例
docker volume ls 列出卷
docker volume create 创建卷 docker volume create dbdata
docker volume inspect 查看卷详情
docker volume rm 删除卷 docker volume rm dbdata
docker volume prune 清理未使用卷

五、系统维护

命令 说明 示例
docker system df 查看磁盘使用
docker system prune 清理所有未使用资源 docker system prune -a --volumes
docker info 显示系统信息
docker version 显示版本信息
docker events 查看实时事件 docker events --filter 'event=start'

六、组合命令(高效操作)

复制代码
# 1. 批量停止所有容器
docker stop $(docker ps -q)

# 2. 批量删除所有容器
docker rm -f $(docker ps -aq)

# 3. 批量删除所有镜像
docker rmi -f $(docker images -q)

# 4. 清理所有无用资源
docker system prune -a -f --volumes

# 5. 按名称过滤容器
docker ps --filter "name=web"

# 6. 按状态过滤容器
docker ps --filter "status=exited"

# 7. 查看容器资源限制
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

七、日志管理

复制代码
# 1. 查看最后100行日志
docker logs --tail 100 webserver

# 2. 查看特定时间段的日志
docker logs --since 2023-01-01 --until 2023-01-02 webserver

# 3. JSON格式日志解析
docker logs webserver | jq

八、Docker Compose 常用命令

命令 说明
docker-compose up -d 启动服务
docker-compose down 停止并删除资源
docker-compose ps 查看服务状态
docker-compose logs 查看服务日志
docker-compose build 重新构建镜像
docker-compose exec 进入服务容器

九、配置别名(简化操作)

~/.bashrc 中添加:

复制代码
alias dk='docker'
alias dkc='docker-compose'
alias dkps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias dkimg='docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"'
alias dkprune='docker system prune -af'

执行 source ~/.bashrc 生效


十、可视化工具推荐

  1. Portainer

    复制代码
    docker run -d -p 9000:9000 --name portainer \
    -v /var/run/docker.sock:/var/run/docker.sock \
    portainer/portainer
  2. Lazydocker

    复制代码
    docker run --rm -it -v \
    /var/run/docker.sock:/var/run/docker.sock \
    lazyteam/lazydocker

这些命令覆盖了 Docker 日常管理的核心场景,建议收藏作为速查手册!

相关推荐
hqxstudying11 分钟前
Java异常处理
java·开发语言·安全·异常
我命由我123453 小时前
Kotlin 数据容器 - List(List 概述、创建 List、List 核心特性、List 元素访问、List 遍历)
java·开发语言·jvm·windows·java-ee·kotlin·list
武子康5 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
YuTaoShao8 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
源码_V_saaskw8 小时前
JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
java·微信小程序·小程序·uni-app·音视频·交友
超浪的晨8 小时前
Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
java·开发语言·后端·学习·个人开发
双力臂4049 小时前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试
Edingbrugh.南空9 小时前
Aerospike与Redis深度对比:从架构到性能的全方位解析
java·开发语言·spring
QQ_43766431410 小时前
C++11 右值引用 Lambda 表达式
java·开发语言·c++
永卿00110 小时前
设计模式-迭代器模式
java·设计模式·迭代器模式