主页

索引

模块索引

搜索页面

Compose 模板文件

备注

注意每个服务都必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。

Compose and Docker compatibility matrix:

Compose file        format Docker Engine release
3.8                         19.03.0+
3.7                         18.06.0+
3.6                         18.02.0+
3.5                         17.12.0+
3.4                         17.09.0+
3.3                         17.06.0+
3.2                         17.04.0+
3.1                         1.13.1+
3.0                         1.13.0+
2.4                         17.12.0+
2.3                         17.06.0+
2.2                         1.13.0+
2.1                         1.12.0+
2.0                         1.10.0+
1.0                         1.9.1.+

depends_on:

# 解决容器的依赖、启动先后的问题。以下例子中会先启动 redis db 再启动 web
version: '3'
services:
  web:
    build: .
    depends_on:
      - db
      - redis

  redis:
    image: redis

  db:
    image: postgres

environment:

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

environment:
  - RACK_ENV=development
  - SESSION_SECRET

expose:

# 暴露端口,但不映射到宿主机,只被连接的服务访问。
# 仅可以指定内部端口为参数

expose:
 - "3000"
 - "8000"

logging:

配置日志选项:
logging:
  driver: syslog
  options:
    syslog-address: "tcp://192.168.0.42:123"

目前支持三种日志驱动类型:
driver: "json-file"
driver: "syslog"
driver: "none"

options 配置日志驱动的相关参数:
options:
  max-size: "200k"
  max-file: "10"

network_mode:

设置网络模式。使用和 docker run 的 --network 参数一样的值。

network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"

示例:
version: "3"
services:
  some-service:
    network_mode: "host"
    // 注意: "host" network_mode is incompatible with port_bindings

networks:

# 配置容器连接的网络

version: "3"
services:
  some-service:
    networks:
     - some-network
     - other-network

networks:
  some-network:
  other-network:

ports:

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

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

secrets:

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

version: "3.1"
services:

mysql:
  image: mysql
  environment:
    MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
  secrets:
    - db_root_password
    - my_other_secret

secrets:
  my_secret:
    file: ./my_secret.txt
  my_other_secret:
    external: true

volumes:

数据卷所挂载路径设置。可以设置宿主机路径 (HOST:CONTAINER) 或加上访问模式 (HOST:CONTAINER:ro)
该指令中路径支持相对路径

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

主页

索引

模块索引

搜索页面