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

相关推荐
古城小栈9 分钟前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang
华仔啊12 分钟前
这 10 个 MySQL 高级用法,让你的代码又快又好看
后端·mysql
MapGIS技术支持19 分钟前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
Coder_Boy_23 分钟前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
码事漫谈39 分钟前
国产时序数据库崛起:金仓凭什么在复杂场景中碾压InfluxDB
后端
上进小菜猪44 分钟前
当时序数据不再“只是时间”:金仓数据库如何在复杂场景中拉开与 InfluxDB 的差距
后端
盖世英雄酱581362 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
济南壹软网络科技有限公司2 小时前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app
廋到被风吹走2 小时前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式
一条可有可无的咸鱼2 小时前
企业招聘信息,企业资讯进行公示
java·vue.js·spring boot·uni-app