新聞中心
Docker Compose 是一個(gè)用于定義和運(yùn)行多容器 Docker 應(yīng)用程序的工具,通過使用 Docker Compose,你可以用一個(gè)單一的配置文件(默認(rèn)為 dockercompose.yml)來配置你的應(yīng)用程序服務(wù),這個(gè)文件可以定義服務(wù)、網(wǎng)絡(luò)和卷,并可以控制整個(gè)應(yīng)用程序的生命周期。

下面是一個(gè)詳細(xì)的 dockercompose.yml 文件結(jié)構(gòu)解析:
1. 版本
version: '3'
說明:指定 Docker Compose 文件格式的版本。
示例:version: '3' 表示使用的是 Docker Compose 文件格式的第 3 版。
2. 服務(wù)
服務(wù)是 Docker Compose 文件中的主要部分,它定義了應(yīng)用程序中的每個(gè)容器。
2.1 服務(wù)名稱
services: web:
說明:定義服務(wù)的名稱,web。
示例:services: web: 定義了一個(gè)名為 web 的服務(wù)。
2.2 鏡像
image: nginx:latest
說明:指定服務(wù)使用的 Docker 鏡像。
示例:image: nginx:latest 表示使用最新版本的 Nginx 鏡像。
2.3 容器命令
command: ["nginx", "g", "daemon off;"]
說明:指定在容器啟動時(shí)執(zhí)行的命令。
示例:command: ["nginx", "g", "daemon off;"] 表示在容器啟動時(shí)執(zhí)行 Nginx 并禁用守護(hù)進(jìn)程模式。
2.4 端口映射
ports: "80:80"
說明:將容器的端口映射到宿主機(jī)的端口。
示例:ports: "80:80" 表示將容器的 80 端口映射到宿主機(jī)的 80 端口。
2.5 卷掛載
volumes: ./data:/var/lib/mysql
說明:將宿主機(jī)上的目錄或文件掛載到容器中。
示例:volumes: ./data:/var/lib/mysql 表示將宿主機(jī)上的 data 目錄掛載到容器的 /var/lib/mysql 目錄。
2.6 環(huán)境變量
environment: MYSQL_ROOT_PASSWORD=mysecretpw
說明:設(shè)置容器的環(huán)境變量。
示例:environment: MYSQL_ROOT_PASSWORD=mysecretpw 表示設(shè)置 MySQL 的 root 密碼為 mysecretpw。
3. 網(wǎng)絡(luò)
networks: default:
說明:定義服務(wù)所屬的網(wǎng)絡(luò)。
示例:networks: default: 表示服務(wù)屬于默認(rèn)網(wǎng)絡(luò)。
4. 依賴項(xiàng)
depends_on: db
說明:指定服務(wù)的啟動順序,確保某個(gè)服務(wù)在其他服務(wù)之前啟動。
示例:depends_on: db 表示 web 服務(wù)依賴于 db 服務(wù),db 服務(wù)會先于 web 服務(wù)啟動。
5. 擴(kuò)展服務(wù)
extends: file: base.yml service: web
說明:從其他 Docker Compose 文件繼承服務(wù)配置。
示例:extends: file: base.yml service: web 表示從 base.yml 文件中繼承名為 web 的服務(wù)配置。
6. 配置文件編寫示例
version: '3'
services:
web:
image: nginx:latest
ports:
"80:80"
volumes:
./html:/usr/share/nginx/html
depends_on:
db
db:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: mysecretpw
這個(gè)示例定義了一個(gè)包含兩個(gè)服務(wù)(web 和 db)的應(yīng)用程序。web 服務(wù)使用 Nginx 鏡像,將宿主機(jī)的 html 目錄掛載到容器的 /usr/share/nginx/html 目錄,并將容器的 80 端口映射到宿主機(jī)的 80 端口。db 服務(wù)使用 MySQL 鏡像,并設(shè)置了 root 密碼為 mysecretpw。web 服務(wù)依賴于 db 服務(wù),db 服務(wù)會在 web 服務(wù)之前啟動。
名稱欄目:DockerCompose配置文件Docker-Compose.yml文件詳解(docker-compose.yml配置文件編寫詳解)
文章起源:http://m.5511xx.com/article/codpioh.html


咨詢
建站咨詢
