docker-compose.yml配置小結
阿新 • • 發佈:2020-07-13
個人學習筆記,謝絕轉載!!!
原文:https://www.cnblogs.com/wshenjin/p/13293881.html
docker-compose.yml是一個定義服務、網路和卷的YAML檔案,預設路徑是當前目錄下的docker-compose.yml,可以使用.yml或.yaml作為副檔名。
docker-compose.yml標準模板檔案應該包含version、services、networks 三大部分,最關鍵的是services和networks兩個部分。
docker-compose.yml
version: '3' services: rdb_01: #服務名稱,一個服務對應一個容器 image: rdb-v3.2.7 #image標籤指定服務映象名稱或映象ID,如果本地不存在,Compose將會嘗試拉取映象。 build: #除了基於指定的映象,還可以基於Dockerfile。build標籤指定Dockerfile所在資料夾的路徑,Compose將會利用Dockerfile自動構建映象並啟動容器。 #如果同時指定image和build兩個標籤,那麼Compose會構建映象並且把映象命名為image值指定的名字。 context: ./redis3.2.7/ #設定上下文根目錄,也可以是連結到git倉庫的url。當提供的值是相對路徑時,被解析為相對於撰寫檔案的路徑,此目錄也是傳送到Docker守護程序的context。 dockerfile: Dockerfile #指定dockerfile,這個dockerfile就位於centext標籤指定的路徑下。 #context和dockerfile可以合併到build標籤,例如:build: ./redis3.2.7/ container_name: myrdb #自定義容器名稱,預設容器名稱格式是:${專案名稱}_${服務名稱}_${序號} commond: CND #覆蓋容器啟動後預設執行的命令 entrypoint: /path/entrypoi.sh #覆蓋Dockerfile中的定義的entrypoint depends_on: #容器依賴 - web_01 #例如:web_01服務啟動完,再啟動redb_01 ports: #對映埠 - "6379:6379" extra_hosts #在容器/etc/hosts檔案中新增hosts - "host1:1.1.1.1" - "host2:2.2.2.2" volumes: #掛載卷 - /data/redis/ #只是指定一個路徑,會自動在建立一個數據卷 - /volumes/rdb_01/:/data/redis/ - /volumes/pubvolume/:/tmp/:ro #只讀 volumes_from: #從另一個服務或容器掛載其資料卷 - web_01 #服務名稱 - nginx-v1.14 #容器名稱 dns:8.8.8.8 #自定義dns dns: #可以按列表的語法 - 8.8.8.8 - 9.9.9.9 expose: #暴露埠,但不對映到宿主機,只允許能被連線的服務訪問。僅可以指定內部埠為引數 - "1234" networks: #指定網路,預設每個services都會建立一個獨立的網路 - "rdb_network" #自定義個 rdb_network,需要在networks欄位配置 rdb_network: #也可以這樣,並指定IP地址,語法捉摸不透 ipv4_address: 172.16.1.10 environment: #設定環境變數 - RDB_ENV=TESTRDB networks: rdb_network: #自定義一個網路,rdb_network driver: bridge #網路模式 ipam: driver: default config: - subnet: 172.16.1.0/24 #自定義IP段