docker-compose.yml配置小結


個人學習筆記,謝絕轉載!!!

原文: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段


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM