今天繼續Docker Compose file的指令學習,由於docker stack比較特別可能要搭配docker swarm單獨一篇主要學習它們,因此有關於docker stack的命令我都先跳過。
command指令可以覆蓋默認的執行指令
可以設置帳戶的憑證的位置,僅能在window container使用。
可以配置服務的依賴項,啟動包含依賴的服務時就會先啟動依賴服務,不過啟動依賴不會等待類似DB、Redis、solr或是Elasticsearch的狀態就緒,如果需要此功能就需要透過三方工具或是寫腳本做連接測試。
將本機的位置添加到container
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
docker compose file也可以設定自己的DNS Server
dns:
- 8.8.8.8
- 9.9.9.9
設置DNS的搜尋域名
dns_search:
- dc1.example.com
- dc2.example.com
包含環境變數的檔案,可以帶入環境變數...
services:
some-service:
env_file:
- a.env
- b.env
在compose file中添增環境變數
environment:
- RACK_ENV=development
- SHOW=true
- SESSION_SECRET
當不建置在主機時,用來設定要公開的端口
expose:
- "3000"
- "8000"
能夠用來增加主機名,增加的主機名會儲存在/etc/hosts
內
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
同Day13 Dockerfile指令大集(二)提到的Dockerfile的健康檢查
標出需要使用的image名稱,如果image不存在,compose會幫你建置。
可以在container內執行初始化程序(還不知道能幹嘛...
主要是window在使用,可以配置default
, process
and hyperv
將配置的值添加至container
服務log紀錄的路徑配置,可以設置driver以及options。
driver可以配置"json-file"
(預設)、"syslog"
以及"none"
options可以配置address以及檔案大小還有數量
driver: "syslog"
options:
syslog-address: "tcp://192.168.0.42:123"
max-size: "200k"
max-file: "10"
配置網路的模式,包含"bridge"
、"host"
、"none"
、"service:[service name]"
、"container:[container name/id]"
配置要使用的網路,除此之外也可以設置別名(ALIASES)還有IPV4以及IPV6的設定
服務要公開的port號
簡單表示方法
ports:
- 3000:3000
詳細的表示方法
ports:
- target: 3000
published: 3000
protocol: tcp
mode: host
今天超過了昨天訂下的進度,明天就一鼓作氣將全部的compose file命令了解完,再來就要來學docker swarm以及docker stack。
參考文獻:
docker官方文件