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

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


咨詢
建站咨詢
