要使用 Compose 以腳本方式建立容器,首先需要建立一個模板檔案 docker-compose.yml
,模板以 YAML 為撰寫格式,所有需要建立的腳板內容都寫在該檔案中。
指定模板檔案執行時要使用的 compose 版本,因為每個 compose 版本支援的語法可能不太一樣。
在 services 內撰寫各個 container 的配置,一個模板檔案只會宣告一次 services 聲明該模板的 continaer 啟動的配置。
services 裡面則撰寫許多 service ( 這裡以「有 s」與「沒有 s」作區別 ),這裡的 service 即代表 container,而我們必須為這個 service 取一個別名 (service_name
),提供 compose 執行時的一些參考。
version: '3'
services:
service_name:
build: .
...
一個 service 只能包含一個 container 一個 container 只能由一個 image 建立起來,而這個建立起來的 image 可以是 Repository 中存在的,也可以是從 Dockerfile 中 Build 出來的。
...
service_name:
build: .
...
service_name:
image: "mariadb"
設定「host 對 container」的端口映射。
...
service_name:
build: .
ports:
- "5000:80"
設定「container 對 container」之間的端口開放。
...
service_name:
build: .
expose:
- "3306"