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

相关推荐
catchadmin35 分钟前
PHP 快速集成 ChatGPT 用 AI 让你的应用更聪明
人工智能·后端·chatgpt·php
GUIQU.40 分钟前
【QT】嵌入式开发:从零开始,让硬件“活”起来的魔法之旅
java·数据库·c++·qt
callJJ5 小时前
从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(2)
java·开发语言·后端·spring·ioc·di
wangjialelele5 小时前
Linux中的线程
java·linux·jvm·c++
谷咕咕5 小时前
windows下python3,LLaMA-Factory部署以及微调大模型,ollama运行对话,开放api,java,springboot项目调用
java·windows·语言模型·llama
没有bug.的程序员5 小时前
MVCC(多版本并发控制):InnoDB 高并发的核心技术
java·大数据·数据库·mysql·mvcc
在下村刘湘6 小时前
maven pom文件中<dependencyManagement><dependencies><dependency> 三者的区别
java·maven
不务专业的程序员--阿飞7 小时前
JVM无法分配内存
java·jvm·spring boot
你的人类朋友7 小时前
JWT的组成
后端
李昊哲小课7 小时前
Maven 完整教程
java·maven