Docker-Docker命令整理说明

本文详细介绍了Docker的基本命令,包括拉取镜像、查看镜像、运行容器、网络操作等,并展示了容器内部执行命令的方法。涵盖了镜像管理、容器生命周期管理和网络配置等内容,适合Docker初学者和进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker命令汇总

docker pull 镜像名<:tags> - 从远程仓库抽取镜像
docker images - 查看本地镜像
docker run 镜像名<:tags> - 创建容器,启动应用(前台运行)
    * 如果在运行run命令时,镜像还没有被远程仓库抽取,则会首先进行pull将镜像下载到本地,再进行创建启动操作
docker run -p 宿主机端口:容器内端口 镜像名 - 创建容器,启动应用并映射端口号(前台运行)
    * -p: 映射端口号
docker run -p 宿主机端口:容器内端口 -d 镜像名 - 创建容器,启动应用并映射端口号(后台运行)
    * -d: 容器后台运行,避免以为退出容器
docker ps - 查看正在运行中的镜像
docker ps -a - 查看所有的容器
docker info - 查看docker基本信息(查看加速配置)
docker rm <-f> 容器id - 删除容器(-f强制删除)
docker rmi <-f> 镜像名<:tags> - 删除<指定版本>镜像(-f强制删除)
docker start 容器id - 启动容器(Up)
docker pause 容器id - 暂停容器(Up (Pause))
docker unpause 容器id - 取消暂停容器(Up)
docker stop 容器id - 停止容器(Exited)
docker build -t 机构/镜像名<:tags> DockerFile目录(绝对路径|相对路径) - 构建镜像(结合Dockerfile使用)
docker inspect 容器id - 查看对应容器的元数据
docker network - docker网络服务命令
docker network ls - 列出当前docker底层网络服务的明细
docker network create -d bridge my-bridge -- 新建网桥
    -d bridge 指明新建网络服务的类型为bridge
    即所有通过my-bridge这个网桥内外进行通信的,彼此都是互联互通的
docker network connect my-bridge web - web容器和网桥my-bridge绑定
docker network connect my-bridge database - database容器和网桥my-bridge绑定
docker load -i <localdir> # 加载本地的镜像文件,在本地docker中创建一系列镜像

容器内部执行命令

格式: docker exec [-it] 容器id 命令
    * exec: 在对应容器中执行命令
    * -it:  采用交互方式执行命令

实例:

docker exec -it 容器id /bin/bash
说明:
/bin/bash 可以开启一个接收后续命令的终端 (终端交互操作,需要-it)

退出当前容器:直接在容器内部执行 exit 退回到宿主机

<think>好的,用户现在想了解docker-compose.yml文件的详细用法,特别是文件格式和命令详解。首先,我需要回顾之前的对话历史。用户之前遇到了LibreOffice处理PDF时的报错问题,我提供了解决方案和相关问题。现在用户转向了Docker Compose的主题,可能是在开发或部署环境中遇到了相关问题。 用户引用了站内的一篇关于docker-compose.yml配置的文章,但提到该引用可能不是他们的真实需求,需要更多参考他们之前的问题和我的回答。之前的回答结构清晰,分步骤说明,并附带了相关问题和引用,所以这次也应该保持类似的结构。 首先,我需要确定用户的需求层次。他们可能刚接触Docker Compose,需要从基础的文件结构讲起,包括常用命令、配置项的作用,以及实际示例。同时,用户提到“命令详解”,可能需要区分docker-compose的命令docker命令的区别,比如up、start、build等。 接下来,我应该组织内容结构。根据用户提供的引用,他们可能对docker-compose.yml的配置、常用命令、执行顺序、卷的类型以及yml和yaml的区别感兴趣。但用户明确说引用仅供参考,所以需要以他们的实际需求为主,即文件格式和命令详解。 需要涵盖的主要内容点包括: 1. docker-compose.yml的基本结构和语法(YAML格式)。 2. 核心配置项的解释,如services、volumes、networks等。 3. 常用命令的详细说明,如up、down、build、logs等,以及它们的参数。 4. 可能的高级用法,如环境变量、依赖管理、扩展配置等。 5. 示例代码,帮助用户理解如何编写自己的docker-compose文件。 6. 常见问题解答或相关问题的推荐,如用户可能遇到的网络问题、卷挂载问题等。 同时,需要注意用户可能对docker-compose和docker命令的区别不太清楚,需要明确说明。例如,docker-compose up与docker-compose start的区别,以及docker-compose与docker run的对应关系。 还要考虑用户的实际应用场景,比如多容器应用的编排、开发环境与生产环境的配置差异等。可能需要提供不同场景下的配置示例,例如带有数据库、Web服务器和缓存服务的典型应用栈。 此外,需要确保内容符合格式要求:使用中文,行内数学表达式用$...$,独立公式用$$...$$(不过可能在Docker主题中用得较少),正确使用LaTeX语法,生成相关问题等。 最后,检查是否有需要引用的地方,比如Docker官方文档或最佳实践指南,并添加引用标识。例如,关于版本兼容性或特定配置项的官方说明。 现在需要将这些思考整理成一个结构化的回答,分步骤详细解释docker-compose.yml的各个方面,确保清晰易懂,并附带示例代码和相关问题。同时,保持与之前回答一致的风格,如使用标题、代码块、表格等元素来增强可读性。</think>### Docker Compose配置文件与命令详解 --- #### 一、核心文件结构 Docker Compose采用YAML格式(扩展名`.yml`或`.yaml`),基础结构包含三个核心层级: ```yaml version: "3.8" # 指定语法版本[^1] services: # 容器服务定义 web: image: nginx:alpine ports: - "80:80" volumes: # 持久化存储定义 db_data: {} networks: # 自定义网络配置 app_net: driver: bridge ``` --- #### 二、关键配置项解析 **1. 服务定义(services)** 每个服务对应一个容器实例,支持完整Docker参数: ```yaml app: build: ./dir # 构建上下文路径 image: myapp:1.0 # 优先级高于build depends_on: # 启动顺序控制 - redis - db environment: - NODE_ENV=production env_file: .env # 环境变量文件 ports: - "8080:80" # 主机端口:容器端口 volumes: - type: bind source: ./data target: /app/data ``` **2. 网络配置(networks)** 支持自定义网络隔离: ```yaml networks: frontend: driver: bridge ipam: config: - subnet: 172.28.0.0/24 ``` **3. 存储卷(volumes)** 两种挂载方式对比: | 类型 | 示例 | 数据位置 | |------------|--------------------------|-----------------------| | 命名卷 | `db_data:/var/lib/mysql` | Docker管理目录 | | 绑定挂载 | `./cache:/tmp/cache` | 主机指定路径 | --- #### 三、常用命令操作指南 **1. 生命周期管理** ```bash # 完整构建启动(重建镜像) docker-compose up --build # 仅启动已有容器 docker-compose start # 停止并删除容器 docker-compose down -v # -v清除关联卷 ``` **2. 调试与监控** ```bash # 查看实时日志(带时间戳) docker-compose logs -f --tail=100 --timestamps # 执行容器命令 docker-compose exec web sh # 资源使用统计 docker-compose stats ``` **3. 扩展操作** ```bash # 水平扩展服务实例 docker-compose up --scale web=3 -d # 强制重建镜像(跳过缓存) docker-compose build --no-cache # 配置验证 docker-compose config ``` --- #### 四、高级配置模式 **1. 多环境配置** 通过`-f`指定多个配置文件: ```bash # 基础配置+覆盖配置 docker-compose -f docker-compose.yml -f docker-compose.prod.yml up ``` 覆盖文件示例: ```yaml services: web: environment: - DEBUG=0 deploy: resources: limits: cpus: '2' memory: 4G ``` **2. 动态变量注入** 使用`${VARIABLE}`语法: ```yaml environment: - API_KEY=${API_KEY:-default} ``` **3. 健康检查配置** ```yaml services: db: healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 3 ``` --- #### 五、常见问题解答 **Q1: `docker-compose up`与`docker run`有何对应关系?** `docker-compose up`相当于组合执行: ```bash docker build -t image_name . # 如果配置了build docker run -p ports -v volumes image_name ``` **Q2: 如何查看服务依赖关系图?** ```bash docker-compose config --services # 列出所有服务 docker-compose ps --services # 显示运行状态 ``` **Q3: 版本兼容性问题如何解决?** 使用版本检测命令: ```bash docker-compose version # 输出包含:Docker Compose version v2.17.2 ``` 各版本对照表: | Compose文件版本 | Docker Engine最低版本 | |----------------|-----------------------| | 3.8 | 19.03.0+ | | 3.7 | 18.06.0+ | | 2.4 | 17.12.0+ | --- ### 相关问题 1. 如何实现Docker Compose的跨主机部署? 2. Docker Swarm与Docker Compose的主要区别是什么? 3. 如何通过Compose实现容器间的负载均衡? [^1]: Docker官方建议使用与Docker Engine版本兼容的Compose文件格式(参考Docker文档Compose文件版本矩阵)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值