Overview

要使用 Compose 以腳本方式建立容器,首先需要建立一個模板檔案 docker-compose.yml,模板以 YAML 為撰寫格式,所有需要建立的腳板內容都寫在該檔案中。

Usage

version

指定模板檔案執行時要使用的 compose 版本,因為每個 compose 版本支援的語法可能不太一樣。

services

在 services 內撰寫各個 container 的配置,一個模板檔案只會宣告一次 services 聲明該模板的 continaer 啟動的配置。

services 裡面則撰寫許多 service ( 這裡以「有 s」與「沒有 s」作區別 ),這裡的 service 即代表 container,而我們必須為這個 service 取一個別名 (service_name),提供 compose 執行時的一些參考。

version: '3'
services:
	service_name:
		build: .
...

image / build

一個 service 只能包含一個 container 一個 container 只能由一個 image 建立起來,而這個建立起來的 image 可以是 Repository 中存在的,也可以是從 Dockerfile 中 Build 出來的。

...
service_name:
	build: .
...
service_name:
	image: "mariadb"

ports

設定「host 對 container」的端口映射。

...
service_name:
	build: .
	ports:
		- "5000:80"

expose

設定「container 對 container」之間的端口開放。

...
service_name:
	build: .
	expose:
		- "3306"

container_name