docker 常用指令整理

以下是Docker常用操作指令的整理,分为镜像管理、容器操作、网络配置、数据卷管理、Docker Compose及系统维护等部分:


一、镜像管理

  1. 拉取镜像

    bash 复制代码
    docker pull [镜像名]:[标签]  # 默认标签为latest
    # 示例:拉取Ubuntu 20.04镜像
    docker pull ubuntu:20.04
  2. 构建镜像

    bash 复制代码
    docker build -t [镜像名]:[标签] [Dockerfile路径]
    # 示例:从当前目录的Dockerfile构建镜像
    docker build -t myapp:v1 .
  3. 列出本地镜像

    bash 复制代码
    docker images
    # 仅显示镜像ID
    docker images -q
  4. 删除镜像

    bash 复制代码
    docker rmi [镜像名或ID]
    # 强制删除(正在使用的镜像)
    docker rmi -f [镜像ID]
  5. 导出/导入镜像

    bash 复制代码
    docker save -o [文件名.tar] [镜像名]  # 导出
    docker load -i [文件名.tar]          # 导入

二、容器操作

  1. 启动容器

    bash 复制代码
    docker run [选项] [镜像名]
    # 示例:启动并进入交互模式
    docker run -it --name mycontainer ubuntu:20.04 /bin/bash
    # 后台运行并映射端口
    docker run -d -p 8080:80 --name webserver nginx

    常用选项

    -d:后台运行(守护模式)

    -p [宿主机端口]:[容器端口]:端口映射

    -v [宿主机路径]:[容器路径]:挂载数据卷

    --name:指定容器名称

    --restart=always:容器退出时自动重启

  2. 列出容器

    bash 复制代码
    docker ps       # 查看运行中的容器
    docker ps -a    # 查看所有容器(包括已停止的)
  3. 停止/启动/重启容器

    bash 复制代码
    docker stop [容器名或ID]      # 停止
    docker start [容器名或ID]     # 启动
    docker restart [容器名或ID]  # 重启
  4. 进入运行中的容器

    bash 复制代码
    docker exec -it [容器名或ID] /bin/bash
    # 示例:进入容器并执行命令
    docker exec -it webserver ls /usr/share/nginx/html
  5. 查看容器日志

    bash 复制代码
    docker logs [容器名或ID]       # 查看全部日志
    docker logs -f [容器名或ID]    # 实时跟踪日志(类似tail -f)
  6. 删除容器

    bash 复制代码
    docker rm [容器名或ID]      # 删除已停止的容器
    docker rm -f [容器名或ID]   # 强制删除运行中的容器
  7. 复制文件

    bash 复制代码
    # 从宿主机复制到容器
    docker cp [宿主机文件路径] [容器名]:[容器路径]
    # 从容器复制到宿主机
    docker cp [容器名]:[容器文件路径] [宿主机路径]

三、网络管理

  1. 列出网络

    bash 复制代码
    docker network ls
  2. 创建自定义网络

    bash 复制代码
    docker network create [网络名]
    # 示例:创建名为mynet的桥接网络
    docker network create --driver bridge mynet
  3. 连接容器到网络

    bash 复制代码
    docker network connect [网络名] [容器名]
    # 示例:将webserver容器连接到mynet网络
    docker network connect mynet webserver
  4. 查看网络详情

    bash 复制代码
    docker network inspect [网络名]

四、数据卷管理

  1. 创建数据卷

    bash 复制代码
    docker volume create [卷名]
  2. 列出数据卷

    bash 复制代码
    docker volume ls
  3. 挂载数据卷到容器

    bash 复制代码
    docker run -v [卷名]:[容器路径] [镜像名]
    # 示例:挂载名为mydata的卷到容器的/app/data目录
    docker run -v mydata:/app/data myapp
  4. 删除数据卷

    bash 复制代码
    docker volume rm [卷名]

五、Docker Compose

  1. 启动服务

    bash 复制代码
    docker-compose up -d  # 后台启动
  2. 停止并删除服务

    bash 复制代码
    docker-compose down
  3. 查看服务状态

    bash 复制代码
    docker-compose ps
  4. 查看服务日志

    bash 复制代码
    docker-compose logs -f [服务名]

六、系统维护

  1. 查看Docker信息

    bash 复制代码
    docker info
  2. 清理未使用的资源

    bash 复制代码
    docker system prune      # 删除停止的容器、未使用的网络和悬空镜像
    docker system prune -a   # 额外删除所有未被使用的镜像
  3. 查看资源使用情况

    bash 复制代码
    docker stats             # 实时监控容器资源占用
    docker system df         # 查看磁盘使用情况
  4. 更新容器配置

    bash 复制代码
    docker update --restart=always [容器名]  # 设置自动重启
    docker update --memory 512M [容器名]    # 限制内存为512MB

七、实用技巧

  1. 快速清理所有容器和镜像

    bash 复制代码
    docker rm -f $(docker ps -aq)   # 删除所有容器
    docker rmi -f $(docker images -q)  # 删除所有镜像
  2. 查看容器内部进程

    bash 复制代码
    docker top [容器名]
  3. 修改容器启动命令

    bash 复制代码
    docker commit [容器名] [新镜像名]  # 将容器保存为新镜像
    docker run -it [新镜像名] [新命令]

总结

掌握以上命令可覆盖Docker日常操作的90%场景。建议结合实践加深理解,同时参考Docker官方文档以获取更详细的参数说明和高级功能。

相关推荐
Jerry说前后端2 分钟前
2025年第十六届蓝桥杯省赛C++ A组真题
java·c++·蓝桥杯
风象南5 分钟前
Redis管道技术:提升Java应用中的Redis操作性能
redis·后端
小李小李快乐不已6 分钟前
3.3.2 应用层协议设计protobuf(二进制序列化协议)
linux·c++·后端·网络协议·信息与通信
程序员JerrySUN6 分钟前
设计模式每日硬核训练 Day 11:适配器模式(Adapter Pattern)完整讲解与实战应用
java·设计模式·适配器模式
向哆哆1 小时前
Java 测试框架:JUnit 5 的新特性与最佳实践
java·数据库·junit
forestsea1 小时前
WebFlux应用中获取x-www-form-urlencoded数据的六种方法
java·java-ee·webflux
Tracy-226 小时前
啥是Spring,有什么用,既然收费,如何免费创建SpringBoot项目,依赖下载不下来的解决方法,解决99%问题!
java·spring
未定义.2216 小时前
Java设计模式实战:策略模式在SimUDuck问题中的应用
java·设计模式·策略模式
码熔burning8 小时前
【NIO番外篇】之组件 Channel
java·nio·channel
东阳马生架构8 小时前
Sentinel源码—1.使用演示和简介
后端