docker-compose语法详解

docker-compose 的语法主要围绕 docker-compose.yml 文件,以下是各个部分的详解:

1. 版本(Version)

version: '3.8'
  • 指定 docker-compose 文件的版本。不同版本支持不同的特性,建议使用最新的稳定版本。

2. 服务(Services)

services:
  web:
    image: my-web-app:latest
    build: ./web
  • services: 定义应用的各个服务。

  • web: 服务名称,可以自定义。

  • image: 使用的 Docker 镜像。

  • build: 指定 Dockerfile 的路径进行构建。

3. 端口映射(Ports)

ports:
  - "5000:5000"
  • 将容器内的端口映射到主机端口,格式为 主机端口:容器端口

4. 环境变量(Environment)

environment:
  POSTGRES_DB: mydb
  POSTGRES_USER: user
  • 设置容器内的环境变量,支持数组和键值对的形式。

5. 依赖关系(Depends_on)

depends_on:
  - db
  • 指定当前服务依赖于其他服务,确保启动顺序,但不等待服务就绪。

6. 卷(Volumes)

volumes:
  - db_data:/var/lib/postgresql/data
  • 用于数据持久化,格式为 宿主机路径:容器路径卷名:容器路径

7. 网络(Networks)

networks:
  my_network:
  • 定义服务间的网络。可以指定网络类型(如桥接、主机等)。

8. 构建参数(Build)

build:
  context: .
  dockerfile: Dockerfile
  • context: 构建上下文,通常是当前目录。

  • dockerfile: 指定 Dockerfile 名称,默认是 Dockerfile

9. 重启策略(Restart)

restart: always
  • 定义重启策略,如 no, always, unless-stopped, on-failure

10. 其他设置

  • command: 覆盖容器启动时的默认命令。

  • healthcheck: 定义服务的健康检查。

  • extra_hosts: 为容器添加额外的主机名映射。

示例

以下是一个完整的示例:

version: '3.8'
​
services:
  web:
    image: my-web-app:latest
    build:
      context: ./web
      dockerfile: Dockerfile
    ports:
      - "5000:5000"
    environment:
      DATABASE_URL: postgres://user:password@db/mydb
    depends_on:
      - db
    networks:
      - my_network
​
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:
      - db_data:/var/lib/postgresql/data
    networks:
      - my_network
​
volumes:
  db_data:
​
networks:
  my_network:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yymagicer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值