iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 15
0
自我挑戰組

自我學習Docker的30天奇幻旅程系列 第 15

Day15 Docker Compose file指令大集(二)

  • 分享至 

  • xImage
  •  

今天繼續Docker Compose file的指令學習,由於docker stack比較特別可能要搭配docker swarm單獨一篇主要學習它們,因此有關於docker stack的命令我都先跳過。

指令介紹

command

command指令可以覆蓋默認的執行指令

credential_specd

可以設置帳戶的憑證的位置,僅能在window container使用。

depends_on

可以配置服務的依賴項,啟動包含依賴的服務時就會先啟動依賴服務,不過啟動依賴不會等待類似DB、Redis、solr或是Elasticsearch的狀態就緒,如果需要此功能就需要透過三方工具或是寫腳本做連接測試。

devices

將本機的位置添加到container

devices:
  - "/dev/ttyUSB0:/dev/ttyUSB0"

dns

docker compose file也可以設定自己的DNS Server

dns:
  - 8.8.8.8
  - 9.9.9.9

dns_search

設置DNS的搜尋域名

dns_search:
  - dc1.example.com
  - dc2.example.com

env_file

包含環境變數的檔案,可以帶入環境變數...

services:
  some-service:
    env_file:
      - a.env
      - b.env

environment

在compose file中添增環境變數

environment:
  - RACK_ENV=development
  - SHOW=true
  - SESSION_SECRET

expose

當不建置在主機時,用來設定要公開的端口

expose:
  - "3000"
  - "8000"

extra_hosts

能夠用來增加主機名,增加的主機名會儲存在/etc/hosts

extra_hosts:
  - "somehost:162.242.195.82"
  - "otherhost:50.31.209.229"

healthcheck

Day13 Dockerfile指令大集(二)提到的Dockerfile的健康檢查

image

標出需要使用的image名稱,如果image不存在,compose會幫你建置。

init

可以在container內執行初始化程序(還不知道能幹嘛...

isolation

主要是window在使用,可以配置default, process and hyperv

  • process是共享kernel的隔離模式,多個container能夠在同個主機上運行。

    圖來源
  • hyperv則是將各個container運行在VM內,因此都有自己的kernel,具有較強的安全性以及硬體區別。

    圖來源

labels

將配置的值添加至container

logging

服務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"

network_mode

配置網路的模式,包含"bridge""host""none""service:[service name]""container:[container name/id]"

networks

配置要使用的網路,除此之外也可以設置別名(ALIASES)還有IPV4以及IPV6的設定

ports

服務要公開的port號
簡單表示方法

ports:
    - 3000:3000

詳細的表示方法

ports:
  - target: 3000
    published: 3000
    protocol: tcp
    mode: host

總結:

今天超過了昨天訂下的進度,明天就一鼓作氣將全部的compose file命令了解完,再來就要來學docker swarm以及docker stack。

參考文獻:
docker官方文件


上一篇
Day14 Docker Compose file指令大集(一)
下一篇
Day16 Docker Compose file指令大集(三)
系列文
自我學習Docker的30天奇幻旅程24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言