在Docker实战中,fig.yml
文件实际上是早期Docker Compose项目前身Fig所使用的配置文件格式。随着Fig项目的演进和整合,现在统一使用 docker-compose.yml
作为容器编排的配置文件。不过,它们的核心内容和结构是相似的。
以下是一个 docker-compose.yml
文件的基本结构及其组成部分参考:
version: '3' # 指定Compose文件版本
services: # 定义服务
web: # 服务名称
image: nginx:latest # 使用的镜像名称及标签
build: . # 或者指定本地上下文路径以构建镜像(替代image)
context: ./web # 构建镜像时使用的目录
dockerfile: Dockerfile.web # 非默认Dockerfile的路径
command: "nginx -g 'daemon off;'" # 覆盖容器启动时执行的命令
ports:
- "80:80" # 映射宿主机端口到容器端口
environment:
- MYSQL_HOST=mysql_db # 设置环境变量
volumes:
- ./app:/usr/share/nginx/html # 数据卷挂载
networks: # 网络配置
- frontend
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- db_data:/var/lib/mysql # 数据持久化存储
networks:
- backend
networks: # 定义网络
frontend:
backend:
volumes: # 定义数据卷
db_data:
在这个示例中:
services
:定义了多个服务,每个服务代表一个或一组运行相同镜像的容器。image
:指定服务使用的Docker镜像。build
:当需要基于Dockerfile构建自定义镜像时,可以使用此字段指定构建路径等信息。command
:覆盖容器启动后默认执行的命令。ports
:映射宿主机与容器之间的端口。environment
:设置环境变量,可在容器内部访问。volumes
:将宿主机目录或者数据卷挂载到容器内。networks
:定义并连接服务到自定义网络,以便于服务间的通信。
如果你手头有一个遗留的 fig.yml
文件,通常可以直接将其重命名为 docker-compose.yml
并继续使用,但建议检查其中的服务定义是否符合当前Docker Compose的最新语法要求。