最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker-compose.yml參數(shù)的用法(配置文件)

 更新時(shí)間:2023年11月23日 09:04:12   作者:Jiahao_Lin  
這篇文章主要介紹了docker-compose.yml參數(shù)的用法(配置文件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

docker-compose.yml參數(shù)的用法

簡(jiǎn)單易懂

利用淳樸的配置文件風(fēng)格介紹docker-compose.yml

#系統(tǒng)變量
$PWD : 當(dāng)前目錄

#注意:YAML布爾值(true,false,yes,no,on,off)必須用引號(hào)括起來(lái),以便解析器將它們解釋為字符串。
#字典時(shí)
environment:
  SHOW: 'true'
 數(shù)組時(shí)   
environment:
  - SHOW=true
#版本號(hào)
version: "2.1"
# 指定創(chuàng)建的虛擬網(wǎng)絡(luò)數(shù)量 
# 作用:通過(guò)不同的虛擬網(wǎng)絡(luò)實(shí)現(xiàn)了容器網(wǎng)絡(luò)之間的隔離,從而在最大程度上去保護(hù)后端網(wǎng)絡(luò)的安全。
#networks:
#  mynet:
#    driver: bridge
#  mynet1:


# 重用的代碼模板
# 模板的定義必須以 x- 開(kāi)頭
x-logging:
	# 以 & 開(kāi)頭的字符串為模板命名
	# 以 * 加上模板的名稱引用模板
  &default-logging
  driver: json-file
  options:
    max-size: "200k"
    max-file: "10"
    
# 定義全局掛載卷 
volumes:
  test_1.thinking.com:
  test_2.thinking.com:

# 服務(wù)
services: 

 #服務(wù)名稱
 todo:
	# 構(gòu)建鏡像
     build:
     	 # 指定dockerfile的上下文路徑(相對(duì)當(dāng)前docker-compose.yml的位置)
     	 # 包含Dockerfile文件的目錄路徑,或者是git倉(cāng)庫(kù)的URL。 
     	 # 當(dāng)提供的值是相對(duì)路徑時(shí),它被解釋為相對(duì)于當(dāng)前compose文件的位置。 
     	 # 該目錄也是發(fā)送到Docker守護(hù)程序構(gòu)建鏡像的上下文。
       context: . 
       # Dockerfile的文件名稱
       dockerfile: Dockerfile-todo
       args:							
       	# 變量
        buildno: 1
        password: secret
       #  Dockerfile里面可使用的參數(shù)變量			
       #  Dockerfile:
       #	ARG buildno 
       #	ARG password
	   #	RUN echo "Build number: $buildno"
	   #	RUN script-requiring-password.sh "$password"
	  
     # 鏡像名 : 倉(cāng)庫(kù)/標(biāo)簽:版本
     image: zhanyang/todo-demo:1.0.0   
       
     # 依賴(以指定順序啟動(dòng))
     depends_on:  
       mysql:
         condition: service_healthy
         
     # 指定一個(gè)自定義容器名稱,而不是生成的默認(rèn)名稱。
     # 由于Docker容器名稱必須是唯一的,因此如果指定了自定義名稱,則無(wú)法將服務(wù)擴(kuò)展到多個(gè)容器。
     container_name: todo
     
     # 卷掛載路徑設(shè)置。
     # 可以設(shè)置宿主機(jī)路徑 (HOST:CONTAINER) 或加上訪問(wèn)模式 (HOST:CONTAINER:ro)
     # 掛載數(shù)據(jù)卷的默認(rèn)權(quán)限是讀寫(xiě)(rw),可以通過(guò)ro指定為只讀。 
     volumes:
			 	# 只需指定一個(gè)路徑,讓引擎創(chuàng)建一個(gè)卷
			  - /var/lib/mysql
			 
			  # 指定絕對(duì)路徑映射
			  - /opt/data:/var/lib/mysql
			 
			  # 相對(duì)于當(dāng)前compose文件的相對(duì)路徑
			  - ./cache:/tmp/cache
			 
			  # 用戶家目錄相對(duì)路徑
			  - ~/configs:/etc/configs/:ro
			 
			  # 命名卷
			  - datavolume:/var/lib/mysql
			  
			  # 使用全局掛載卷
			  - test_1.thinking.com:/test:rw
			  
		 # 指定日志驅(qū)動(dòng)為 json-file,存儲(chǔ)日志的最大文件 size 為 200k,最多存儲(chǔ) 10 這樣大的文件。
		 # logging支持很多driver,而每一個(gè)driver對(duì)應(yīng)的options都不一樣
		 # docker inspect -f {{.HostConfig.LogConfig}} lnmp-nginx
		 # result:{json-file map[max-file:10 max-size:2000k]}
		 # docker info |grep 'Logging Driver'
		 # result:Logging Driver: json-file
		 # 其他:https://docs.docker.com/engine/admin/logging/overview/
 	logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"
        
		# 指定使用的虛擬網(wǎng)絡(luò)
    networks: 
    #   - mynet
    
    # 覆蓋容器啟動(dòng)后默認(rèn)執(zhí)行的命令。 
    # 該命令也可以是一個(gè)類似于dockerfile的列表:command: ["bundle", "exec", "thin", "-p", "3000"]
    command: bundle exec thin -p 3000
    # may
    command: ["/usr/local/nginx/sbin/nginx"]
	
		# 鏈接到另一個(gè)服務(wù)中的容器。 請(qǐng)指定服務(wù)名稱和鏈接別名(SERVICE:ALIAS),或者僅指定服務(wù)名稱。
		# 實(shí)際是通過(guò)設(shè)置/etc/hosts的域名解析,從而實(shí)現(xiàn)容器間的通信。
		# 故可以像在應(yīng)用中使用localhost一樣使用服務(wù)的別名鏈接其他容器的服務(wù),前提是多個(gè)服務(wù)容器在一個(gè)網(wǎng)絡(luò)中可路由聯(lián)通
		# links也可以起到和depends_on相似的功能,即定義服務(wù)之間的依賴關(guān)系,從而確定服務(wù)啟動(dòng)的順序
	links:
	   - db
	   - db:database
	   - redis
	   
	  # 鏈接到docker-compose.yml 外部的容器,甚至并非 Compose 管理的容器。參數(shù)格式跟 links 類似。
	 external
		 - redis_1
		 - project_db_1:mysql
		 - project_db_1:postgresql
		 
		# 暴露端口,但不映射到宿主機(jī),只被連接的服務(wù)訪問(wèn)。 僅可以指定內(nèi)部端口為參數(shù)
	 expose:
		 - "3000"
		 - "8000"
		 
		# 暴露端口信息。使用宿主:容器 (HOST:CONTAINER)格式或者僅僅指定容器的端口(宿主將會(huì)隨機(jī)選擇端口)都可以。
	 ports:
		 - "3000"
		 - "3000-3005"
		 - "8000:8000"
		 - "9090-9091:8080-8081"
		 - "49100:22"
		 - "127.0.0.1:8001:8001"
		 - "127.0.0.1:5000-5010:5000-5010"
		 - "6060:6060/udp"
		# v3.2中ports的長(zhǎng)格式的語(yǔ)法允許配置不能用短格式表示的附加字段。
	 ports:
		  - target: 80 #容器內(nèi)的端口 
		    published: 8080 #物理主機(jī)的端口 
		    protocol: tcp #端口協(xié)議(tcp或udp) 
		    mode: host #host 和ingress 兩總模式,host用于在每個(gè)節(jié)點(diǎn)上發(fā)布主機(jī)端口,ingress 用于被負(fù)載平衡的swarm模式端口。
		
	# no是默認(rèn)的重啟策略,在任何情況下都不會(huì)重啟容器。  
	restart: "no"
	# 指定為always時(shí),容器總是重新啟動(dòng)。
	restart: always 
	# 如果退出代碼指示出現(xiàn)故障錯(cuò)誤,則on-failure將重新啟動(dòng)容器。
	restart: on-failure
	restart: unless-stopped
	
	  
	# pid 將PID模式設(shè)置為主機(jī)PID模式。
	# 這就打開(kāi)了容器與主機(jī)操作系統(tǒng)之間的共享PID地址空間。 
	# 使用此標(biāo)志啟動(dòng)的容器將能夠訪問(wèn)和操作裸機(jī)的命名空間中的其他容器,反之亦然。
	# 即打開(kāi)該選項(xiàng)的容器可以相互通過(guò)進(jìn)程 ID 來(lái)訪問(wèn)和操作。
	pid: "host"
	
	# 配置 DNS 服務(wù)器??梢允且粋€(gè)值,也可以是一個(gè)列表。
	dns: 8.8.8.8
	dns:
	  - 8.8.8.8
	  - 9.9.9.9
	  
	# 自定義搜索域
	dns_search: example.com
	dns_search:
	  - dc1.example.com
	  - dc2.example.com
	  
	# 覆蓋Dockerfile中的entrypoint,用法同Dockerfile中的用法
	entrypoint: ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
	
	# 添加環(huán)境變量。 你可以使用數(shù)組或字典兩種形式。
	# 任何布爾值; true,false,yes,no需要用引號(hào)括起來(lái),以確保它們不被YML解析器轉(zhuǎn)換為T(mén)rue或False。 
	environment:
	  RACK_ENV: development
	  SHOW: 'true'
	  SESSION_SECRET:
	# 【注意】:如果你的服務(wù)指定了build選項(xiàng),那么在構(gòu)建過(guò)程中通過(guò)environment定義的環(huán)境變量將不會(huì)起作用。
	# 將使用build的args子選項(xiàng)來(lái)定義構(gòu)建時(shí)的環(huán)境變量。

	environment:
	  - RACK_ENV=development
	  - SHOW=true
	  - SESSION_SECRE
	  
	# 1>將定義的變量編寫(xiě)在文件中,然后在yml文件中進(jìn)行添加 
	env_file: .env
	env_file:
	  - ./common.env
	  - ./apps/web.env
	  - /opt/secrets.env
		  
	# 2>例如:
	# old:
		db:
	    image: mysql
	    ports:
	      - "3306:3306"
	    environment:
	      MYSQL_ROOT_PASSWORD: redhat
	      MYSQL_DATABASE: wordpress
	      MYSQL_USER: wordpress
	      MYSQL_PASSWORD: wordpress
	      
    # new:
		db:
		   image: mysql
		   ports:
		      - "3306:3306"
		   env_file: ./mysql_env
    
	  # 創(chuàng)建env_file文件在當(dāng)前目錄mysql_env
		 MYSQL_ROOT_PASSWORD=redhat
		 MYSQL_DATABASE=wordpress
		 MYSQL_USER=wordpress
		 MYSQL_PASSWORD=wordpress3
		
    # 添加hostname映射,類似于docker cli下面的--add-host
	extra_hosts:
     - "www.hcstart.com:192.168.101.14"
 
    # 配置一個(gè)檢查去測(cè)試服務(wù)中的容器是否運(yùn)行正常  
    # 具體: https://docs.docker.com/engine/reference/builder/#healthcheck
    # 查看healthcheck的狀態(tài)輸出 : docker inspect lnmp-nginx
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 1m30s
      timeout: 10s
      retries: 3
	
    #  labels:添加元數(shù)據(jù)到container中,查看現(xiàn)有容器的labels:
	#  docker inspect -f {{.Config.Labels}} lnmp-nginx # lnmp-nginx :容器名
	labels:
	  com.example.description: "Accounting webapp"
	  com.example.department: "Finance"
	  com.example.label-with-empty-value: ""
	labels:
	  - "com.example.description=Accounting webapp"
	  - "com.example.department=Finance"
	  - "com.example.label-with-empty-value"
	
	# 在容器中設(shè)置內(nèi)核參數(shù)
    sysctls:
	     net.core.somaxconn: 1024
	     net.ipv4.tcp_syncookies: 0

	sysctls:
	    - net.core.somaxconn=1024
	    - net.ipv4.tcp_syncookies=0
	    
	    
mysql:
     environment:
       MYSQL_ROOT_PASSWORD: password
       MYSQL_DATABASE: tododb
       MYSQL_USER: user
       MYSQL_PASSWORD: pass
     build:
       context: .
       dockerfile: Dockerfile-mysql
     image: zhanyang/mysql:5.6
     container_name: mysql
     # 以 * 加上模板的名稱引用模板     使用全局自定義模板
     logging: *default-logging
 	 # 指定使用的虛擬網(wǎng)絡(luò)
     networks: 
     #  - mynet1

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Docker的Mysql主備搭建的實(shí)現(xiàn)步驟

    基于Docker的Mysql主備搭建的實(shí)現(xiàn)步驟

    本文主要介紹了基于Docker的Mysql主備搭建的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的詳細(xì)過(guò)程

    Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的詳細(xì)過(guò)程

    本文給大家介紹Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的相關(guān)知識(shí),通過(guò)示例給大家詳細(xì)介紹創(chuàng)建一個(gè)nodejs程序的docker鏡像的方法,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • docker-compose如何實(shí)現(xiàn)滾動(dòng)更新

    docker-compose如何實(shí)現(xiàn)滾動(dòng)更新

    這篇文章主要介紹了docker-compose如何實(shí)現(xiàn)滾動(dòng)更新方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • docker安裝OpenWebUI報(bào)錯(cuò)500的原因及解決方法

    docker安裝OpenWebUI報(bào)錯(cuò)500的原因及解決方法

    Open?WebUI是一個(gè)可擴(kuò)展、功能豐富且用戶友好的自托管WebUI,旨在完全離線操作,這篇文章主要介紹了docker安裝OpenWebUI報(bào)錯(cuò)500的原因及解決方法,需要的朋友可以參考下
    2025-07-07
  • 使用docker安裝elk的詳細(xì)步驟

    使用docker安裝elk的詳細(xì)步驟

    這篇文章主要介紹了使用docker安裝elk,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Docker容器內(nèi)部無(wú)法訪問(wèn)外網(wǎng)原因以及解決辦法

    Docker容器內(nèi)部無(wú)法訪問(wèn)外網(wǎng)原因以及解決辦法

    最近在工作時(shí)遇到一個(gè)問(wèn)題,這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Docker容器內(nèi)部無(wú)法訪問(wèn)外網(wǎng)原因以及解決辦法,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 運(yùn)行中的docker容器端口映射如何修改詳解

    運(yùn)行中的docker容器端口映射如何修改詳解

    這篇文章主要給大家介紹了關(guān)于運(yùn)行中的docker容器端口映射如何修改的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Docker容器輸入漢字觸發(fā)自動(dòng)補(bǔ)全問(wèn)題

    Docker容器輸入漢字觸發(fā)自動(dòng)補(bǔ)全問(wèn)題

    Linux系統(tǒng)中,當(dāng)終端出現(xiàn)中文亂碼通常是由于缺少中文字符集和字體,安裝中文字體和設(shè)置合適的字符集zh_CN.utf8,可以有效解決這一問(wèn)題,首先,通過(guò)查看系統(tǒng)支持的字符集了解是否支持中文,然后安裝相應(yīng)字符集,其次,查看并設(shè)置當(dāng)前系統(tǒng)字符集
    2024-10-10
  • 用Docker部署Fenrus導(dǎo)航頁(yè):打造專屬的極簡(jiǎn)高效瀏覽器首頁(yè)

    用Docker部署Fenrus導(dǎo)航頁(yè):打造專屬的極簡(jiǎn)高效瀏覽器首頁(yè)

    該文章介紹了使用Fenrus和cpolar搭建個(gè)性化的瀏覽器首頁(yè)的方法,包括使用Docker部署Fenrus、配置cpolar實(shí)現(xiàn)公網(wǎng)訪問(wèn)等步驟,并詳細(xì)闡述了部署過(guò)程和使用方法,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • Docker-Compose?容器集群的快速編排方法

    Docker-Compose?容器集群的快速編排方法

    Docker-Compose項(xiàng)目由Python編寫(xiě),調(diào)用Docker服務(wù)提供的API來(lái)對(duì)容器進(jìn)行管理。因此,只要所操作的平臺(tái)支持Docker API, 就可以在其上利用Compose來(lái)進(jìn)行編排管理,這篇文章主要介紹了Docker-Compose?容器集群的快速編排,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

清水河县| 呼玛县| 汉中市| 通海县| 揭东县| 聊城市| 阿拉尔市| 砚山县| 金堂县| 张家港市| 崇文区| 县级市| 杭锦旗| 瑞丽市| 石家庄市| 昌邑市| 应城市| 志丹县| 静安区| 泗洪县| 台江县| 吉隆县| 乐平市| 天镇县| 界首市| 长岛县| 资源县| 巴林右旗| 南安市| 内丘县| 仙游县| 天峨县| 宁河县| 岚皋县| 宿松县| 新竹市| 蒙山县| 阳山县| 加查县| 嘉黎县| 修武县|