docker compose文件常用指令大全

前言

写yaml/yml文件相当于把运行的docker run命令保存下来,方便使用

#######################################################

1、images

指定镜像名称或镜像 ID。
如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。

用法:

image: ubuntu
image: orchardup/postgresql
image: a4bc65fd

2、ports

暴露端口信息。
使用宿主端口:容器端口 (HOST:CONTAINER) 格式,
或者仅仅指定容器的端口(宿主将会随机选择端口)。

用法:

ports:
 - "3000"
 - "8000:8000"
 - "127.0.0.1:8001:8001"

3、extra_hosts

类似 Docker 中的 --add-host 参数,配置静态DNS解析。

用发:

extra_hosts:
 - "googledns:8.8.8.8"
 - "dockerhub:52.1.157.61"

启动后,会在容器的/etc/hosts 文件中添加如下两条条目

8.8.8.8 googledns
52.1.157.61 dockerhub

4、restart

指定容器退出后的重启策略为始终重启。
在生产环境中推荐配置为 always 或者 unless-stopped

用法:

restart: always
restart: unless-stopped

5、hostname && mac_address && domainname

指定容器中搜主机名、mac 地址、索域名等。

用法:

hostname: my_container1
mac_address: 08-00-27-00-0C-0A
domainname: your_website.com

6、labels

打标签,为容器添加 Docker 元数据(metadata)信息。
是解释型语句

用法:

labels:
  com.startupteam.description: "webapp for a startup team"
  service: ceshi_nginx

7、logging

配置日志选项。

用法:

logging:
  driver: syslog
  testions:
    syslog-address: "tcp://192.168.0.42:123"

常用下面这种:

logging:
  options:
    labels: "service"
    max-size: "100m"
    max-file: "4"

目前支持三种日志驱动类型。

driver: "json-file"
driver: "syslog"
driver: "none"

testions 配置日志驱动的相关参数

testions:
  max-size: "200k"
  max-file: "10"

8、volumes

数据卷所挂载路径设置。
可以设置为宿主机路径(HOST:CONTAINER)
或者数据卷名称(VOLUME:CONTAINER),
并且可以设置访问模式 (HOST:CONTAINER:ro)。
该指令中路径支持相对路径。

用法:

volumes:
 - /var/lib/mysql
 - cache/:/tmp/cache
 - ~/configs:/etc/configs/:ro

如果路径为数据卷名称,必须在文件中配置数据卷。(不建议用)

version: "3"

services:
  my_src:
    image: mysql:8.0
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:  

9、deploy(swarm专用)

deploy参数是Docker Compose针对Swarm集群部署提供的,
子参数 专门用于指定与服务部署和运行相关的配置

用法:

deploy:
  replicas: 1
  restart_policy:
    condition: on-failure
    delay: 10s
    max_attempts: 3
    window: 120s
9.1 mode(可缺省)

部署模式
global:强制在每个 node 上都运行一个且最多一个副本
replicas:副本模式,随机分配

9.2 replicas

表示服务实例的副本数量

9.3 restart_policy

4、restart 只是该属性配置在deploy参数下,并只在集群环境下生 效。
有子参数如下:

9.3.1 condition

表示服务重启的条件,值有none、on-failure和 any

9.3.2 delay

表示重启服务之间等待时间,默认为0

9.3.3 max_attempts

表示失败后尝试重启的次数

9.3.4 window

表示等待多久来确定服务是否启动成功

10、depends_on

解决容器的依赖、启动先后的问题。
以下例子中会先启动 redis db 再启动 web,
但是web 服务不会等待 redis db 「完全启动」之后才启动

用法:

services:
  web:
    build: .
    depends_on:
      - db
      - redis

11、environment(带密码服务的常用)

设置环境变量。你可以使用数组或字典两种格式。
只给定名称的变量会自动获取运行 Compose 主机上对应变量的值,可以用来防止泄露不必要的数据

用法:

environment:
  RACK_ENV: development
  SESSION_SECRET:

environment:
  - RACK_ENV=development
  - SESSION_SECRET

12、secrets

存储敏感数据,例如 mysql 服务密码

用法:

  secrets:
    - db_root_password
    - my_other_secret

13、healthcheck

通过命令检查容器是否健康运行

用法:

healthcheck:
  test: ["CMD", "curl", "-f", "http://localhost"]
  interval: 1m30s
  timeout: 10s
  retries: 3

14、networks

配置容器连接的网络

用法:

version: "3"
services:

  some-service:
    networks:
     - some-network
     - other-network

networks:
  some-network:
  other-network:

15、command

覆盖容器启动后默认执行的命令

用法:

command: echo "hello world"

16、placement

平台扩展名,常用在deploy下面,子参数constraints做约束

用法:

  placement:
    constraints: [node.hostname == node2]

以上命令已经够用,其他的可参考:

https://yeasy.gitbook.io/docker_practice/compose/compose_file#networks
https://docs.docker.com/compose/compose-file/
<think>嗯,用户想了解Docker Compose的命令大全。首先,我需要回忆一下Docker Compose常用命令,然后组织成一个结构清晰的回答。Docker Compose主要用于定义和运行多容器应用,所以命令主要围绕项目的启动、停止、构建等。 首先,我应该列出最常用的命令,比如up、down、build、ps这些。然后可能需要分门别类,比如项目管理、服务管理、调试与日志、配置相关等。这样用户查找起来方便。 需要注意的是用户提到系统级指令,比如数学表达式的格式,但这里的内容可能不涉及数学公式,不过还是要确保格式正确。另外,回答要用中文,结构清晰,步骤详细。 接下来,每个命令需要给出基本用法和常见选项。例如,docker compose up 后面可以跟-d,还有--build选项。可能需要举例说明,比如docker compose up -d --build。 还要注意一些容易混淆的地方,比如docker composedocker-compose的区别,虽然现在推荐使用docker compose作为插件,但有些旧系统可能还在用docker-compose的独立版本,可能需要提到这一点。 另外,用户可能需要一些实际应用的例子,比如如何扩展服务,如何查看日志。所以可以加入一些示例,比如docker compose logs -f web。 需要检查命令的正确性,确保选项和用法没有错误。比如,docker compose exec和docker compose run的区别,前者是在运行中的容器执行命令,后者是启动新容器并运行命令。 可能还需要提醒用户配置文件docker-compose.yml,以及如何指定不同的配置文件,比如使用-f选项。 最后,总结一下常用场景,帮助用户快速应用这些命令。可能需要分点说明,比如开发环境、生产环境、调试等不同情况下的命令使用。 总之,结构应该是先概述Docker Compose的作用,然后分大类列出命令,每个命令给出说明、语法、选项和示例,最后总结应用场景。确保信息准确,易于理解,符合用户的需求。</think>以下为Docker Compose常用命令详解,按功能分类整理: --- ### 一、核心项目管理命令 1. **启动服务** ```bash docker compose up [options] ``` - `-d`:后台运行 - `--build`:启动前重新构建镜像 - 示例:`docker compose up -d --build` 2. **停止并移除容器** ```bash docker compose down [options] ``` - `-v`:同时删除数据卷 - `--rmi all`:删除所有相关镜像 - 示例:`docker compose down -v` --- ### 二、服务操作命令 3. **查看运行状态** ```bash docker compose ps ``` 4. **启停服务** ```bash docker compose start # 启动已存在的容器 docker compose stop # 停止容器但不删除 docker compose restart # 重启容器 ``` 5. **扩展服务实例** ```bash docker compose up --scale <service>=<num> ``` - 示例:`docker compose up -d --scale web=3` --- ### 三、镜像构建相关 6. **构建服务镜像** ```bash docker compose build [service] ``` 7. **强制重建镜像** ```bash docker compose build --no-cache ``` --- ### 四、调试与日志 8. **查看实时日志** ```bash docker compose logs -f [service] ``` 9. **进入容器终端** ```bash docker compose exec <service> sh ``` 10. **单次运行命令** ```bash docker compose run <service> <command> ``` --- ### 五、配置相关操作 11. **验证配置文件** ```bash docker compose config ``` 12. **指定配置文件** ```bash docker compose -f custom.yml up ``` --- ### 六、高级功能 13. **查看服务依赖图** ```bash docker compose config --services ``` 14. **查看端口映射** ```bash docker compose port <service> <port> ``` --- ### 典型应用场景 - **开发环境**:`up -d` + `logs -f` - **生产部署**:`up -d --build` + `ps` - **调试排查**:`exec` + `logs` - **版本更新**:`down` → 修改配置 → `up` 建议结合`docker-compose.yml`配置文件使用,可通过`docker compose --help`查看完整命令列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值