docker教程
Docker 基础
Docker简介
Docker 安装
Docker 核心概念
Docker 命令基础
Docker 镜像操作
获取 Docker 镜像
构建 Docker 镜像
管理 Docker 镜像
Docker 容器操作
Docker运行容器
Docker容器的生命周期
Docker容器数据管理
Docker容器网络
Docker容器日志管理
Docker Compose
Docker Compose 简介
Docker Compose 安装
Docker Compose 文件编写
Docker Compose 命令
Docker 安全
Docker 安全基础
Docker 安全最佳实践
Docker 生产环境部署
Docker 集群管理
持续集成与持续部署
Docker监控与日志管理
Docker 高级主题
Docker 网络高级
Docker 存储高级
Docker 容器编排
-
+
首页
Docker Compose 文件编写
# Docker Compose 文件编写 Docker Compose 使用一个名为 `docker-compose.yml` 的 YAML 文件来定义和配置应用程序的服务、网络和卷。以下是一个详细的指南,帮助你编写 `docker-compose.yml` 文件。 ## 基本结构 一个典型的 `docker-compose.yml` 文件包含以下部分: - **version**:指定 Docker Compose 文件的版本。 - **services**:定义应用程序的服务。 - **networks**:定义自定义网络。 - **volumes**:定义数据卷。 ### 示例文件 ```yaml version: '3.8' services: web: image: nginx:latest ports: - "8080:80" volumes: - web-data:/usr/share/nginx/html networks: - webnet db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example volumes: - db-data:/var/lib/mysql networks: - webnet networks: webnet: volumes: web-data: db-data: ``` ## 详细说明 ### 1. 版本(Version) - **说明**:指定 Docker Compose 文件的版本。不同版本的文件格式和功能有所不同。 - **示例**: ```yaml version: '3.8' ``` ### 2. 服务(Services) - **说明**:定义应用程序的各个服务。每个服务可以是一个容器,包含镜像、端口映射、环境变量等配置。 - **示例**: ```yaml services: web: image: nginx:latest ports: - "8080:80" volumes: - web-data:/usr/share/nginx/html networks: - webnet db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example volumes: - db-data:/var/lib/mysql networks: - webnet ``` #### 服务配置项 - **image**:指定服务使用的镜像。 ```yaml image: nginx:latest ``` - **ports**:定义端口映射,格式为 `宿主机端口:容器端口`。 ```yaml ports: - "8080:80" ``` - **volumes**:定义数据卷挂载,格式为 `数据卷名称:容器内路径`。 ```yaml volumes: - web-data:/usr/share/nginx/html ``` - **environment**:定义环境变量。 ```yaml environment: MYSQL_ROOT_PASSWORD: example ``` - **networks**:定义服务连接的网络。 ```yaml networks: - webnet ``` ### 3. 网络(Networks) - **说明**:定义自定义网络,使容器之间能够通过网络进行通信。 - **示例**: ```yaml networks: webnet: ``` ### 4. 数据卷(Volumes) - **说明**:定义数据卷,用于持久化和共享容器数据。 - **示例**: ```yaml volumes: web-data: db-data: ``` ## 实际应用 假设你有一个简单的 Web 应用,包含一个 Nginx 服务器和一个 MySQL 数据库。你可以使用以下 `docker-compose.yml` 文件来定义和管理这些服务: ```yaml version: '3.8' services: web: image: nginx:latest ports: - "8080:80" volumes: - web-data:/usr/share/nginx/html networks: - webnet db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example volumes: - db-data:/var/lib/mysql networks: - webnet networks: webnet: volumes: web-data: db-data: ``` ### 运行 Docker Compose 1. **创建 `docker-compose.yml` 文件**:将上述内容保存到一个名为 `docker-compose.yml` 的文件中。 2. **启动服务**: ```bash docker-compose up -d ``` 该命令会根据 `docker-compose.yml` 文件中的配置创建并启动所有服务。 3. **查看服务状态**: ```bash docker-compose ps ``` 该命令会显示所有服务的运行状态。 4. **停止服务**: ```bash docker-compose down ``` 该命令会停止并删除所有服务、网络和数据卷。 通过以上步骤,你可以使用 Docker Compose 快速搭建和管理多容器应用程序。
wwbang
2025年1月9日 18:35
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码