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官方文档以获取更详细的参数说明和高级功能。

相关推荐
笑衬人心。3 分钟前
JVM 笔记:类加载、内存管理、垃圾收集与垃圾收集器
java·jvm·笔记
程序猿小D6 分钟前
Java项目:基于SSM框架实现的进销存管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
java·数据库·mysql·ssm·jsp·毕业论文·进销存管理系统
得物技术11 分钟前
Java volatile 关键字到底是什么|得物技术
java·后端
青梅主码11 分钟前
【手把手攻略】国家育儿补贴正式开领!一键算清你能拿多少钱?附补贴领取计算器
后端
HoHeHa14 分钟前
IDEA 手动下载安装数据库驱动,IDEA无法下载数据库驱动问题解决方案,IDEA无法连接数据库解决方案(通用,Oracle为例)
java·数据库·intellij-idea
你可以叫我仔哥呀19 分钟前
Java程序员学从0学AI(七)
java·开发语言·人工智能·ai·spring ai
阿宙ppppp24 分钟前
yoloV5的环境安装
后端·图像识别
杨DaB38 分钟前
【SpringMVC】MVC中Controller的配置 、RestFul的使用、页面重定向和转发
java·笔记·后端·学习·spring·mvc·restful
linyb极客之路41 分钟前
干货来袭!5 分钟学会快速实现责任链,效率直接拉满!
java
创码小奇客1 小时前
保姆级 Talos 超参数优化实战指南:从入门到封神
java·后端·架构