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 日常管理的核心场景,建议收藏作为速查手册!

相关推荐
桦说编程1 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅3 小时前
Java面向对象入门(类与对象,新手秒懂)
java
初次攀爬者3 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺4 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart5 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP6 小时前
MyBatis-mybatis入门与增删改查
java
孟陬9 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌9 小时前
一站式了解四种限流算法
java·后端·go
华仔啊10 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java