Docker Compose

参考手册

参考手册地址
docker-compose 用于定义和运行多容器,允许使用者用YAML文件来配置(默认名docker-compose.yml)
核心概念:

  • 服务(Services):构成应用程序的各个容器,例如 Web 服务器、数据库、缓存等。
  • 网络(Networks):容器之间的通信方式,默认创建一个桥接网络,使服务可以通过服务名相互访问。
  • 卷(Volumes):持久化存储数据,防止容器删除后数据丢失。

version

指定 Compose 文件格式版本(不是compose应用程序版本),不同版本支持的特性不同。必须是顶级字段,位于文件最开头

version: '3.8'  # Compose 文件版本

目前推荐V3.8,这是3.x当前系列的最新稳定版本
从V2开始,version不再是必须关键字,不指定会默认使用最新的

service

每一个compose文件必须包含一个service服务(顶级关键字),其下可定义多个服务

services:
  web:  # 服务名称
    # 服务配置项...
  db:
    # 服务配置项...

每个服务还可以包含构建部分(build),用于定义如何创建镜像,若未使用则构建部分被忽略,如以下通过dockerfile构建

services:
  webapp:
    build: ./dir

更多参考文档
常见配置:

  • image:使用的镜像
  • ports 端口映射
  • volumes:数据卷
  • environment 环境变量
  • env_file从外部文件导入环境变量
env_file: .env
  • depends_on 定义服务启动顺序
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres:18
  • networks 指定加入的网络,docker默认使用桥接

networks

通过该关键字可以自定义网络

networks:
  app-network:  # 定义自定义网络,默认是桥接模式
    driver: bridge

volumes

命名卷由Docker管理,存储在宿主机的特定目录(默认/var/lib/docker/volumes),可通过名称引用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容