注:在編寫docker-compose.yml文件時,所有的冒號(:)、短橫線(-)后面都需要加一個空格。
1、command
覆蓋容器啟動后默認執(zhí)行的命令
command: echo "hello"
2、container_name
指定容器名稱。默認將會使用 項目名稱_服務(wù)名稱_序號 這樣的格式
container_name: docker-web-container
3、configs
僅用于Swarm mode
4、deploy
僅用于Swarm mode
5、devices
指定設(shè)備映射關(guān)系
devices:
- "/dev/dir:/dev/dir"
6、depends_on
解決容器的依賴、啟動先后,容器之間的通訊的問題。
7、links
連接到其他容器。注意:不推薦使用該指令,建議使用depends_on。
應(yīng)該使用docker network,建立網(wǎng)絡(luò),而docker run --network來連接特定網(wǎng)絡(luò)。
或者使用version: ‘2' 和更高版本的docker-compose.yml直接定義自定義網(wǎng)絡(luò)并使用。
8、dns
自定義DNS服務(wù)器。可以是一個值,也可以是一個列表。
dns: 8.8.8.8
dns:
- 8.8.8.8
- 114.114.114.114
9、environment
設(shè)置環(huán)境變量。可以使用數(shù)組或字典兩種格式。只給定名稱的變量會自動獲取運行Compose主機上對應(yīng)變量的值,可以用來防止泄露不必要的數(shù)據(jù)。
environment:
MYSQL_ROOT_PASSWORD: 666666
10、expose
暴露端口,但不映射到宿主機,只被連接的服務(wù)訪問。僅可以指定內(nèi)部端口為參數(shù)。
11、extra_hosts
類似Docker中的–add-host參數(shù),指定額外的host名稱映射信息。會在啟動后的服務(wù)容器中/etc/hosts文件中添加一個條目。如:8.8.8.8 googledns
12、healthcheck
通過命令檢查容器是否健康運行
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 1m30s
timeout: 10s
retries: 3
13、image
指定為鏡像名或鏡像ID,如果鏡像在本地不存在,Compose將會嘗試拉取這個鏡像
14、labels
為容器添加Docker元數(shù)據(jù)(metadata)信息。例如可以為容器添加輔助說明信息。
15、network_mode
設(shè)置網(wǎng)絡(luò)模式。使用和docker run的–network參數(shù)一樣的值。
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
16、networks
配置容器連接的網(wǎng)絡(luò)
networks:
network-demo
17、ports
暴露端口信息,使用宿主端口:容器端口(HOST:CONTAINER)格式,或者僅僅指定容器的端口(宿主將會隨機選擇端)都可以。
ports:
- "80:80"
- "443:443"
- "8081:8081"
18、volumes
數(shù)據(jù)卷所掛載路徑設(shè)置,可以設(shè)置宿主機路徑,同時支持相對路徑
volumes:
- ../Site:/data/www:rw
- ./nginx/conf.d:/etc/nginx/conf.d:ro
- ./nginx/cert:/etc/nginx/cert:ro
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/phpcgi.conf:/etc/nginx/phpcgi.conf:ro
- ./nginx/fastcgi.conf:/etc/nginx/fastcgi.conf:ro
- ./nginx/pathinfo.conf:/etc/nginx/pathinfo.conf:ro
- ../logs/nginx:/var/log/nginx
19、ulimits
指定容器的ulimits限制值。
例如,指定最大進程數(shù)為65535,指定文件句柄數(shù)為20000(軟限制,應(yīng)用可以隨時修改,不能超過硬限制)和 40000(系統(tǒng)硬限制,只能root用戶提高)
ulimits:
nproc: 65535
nofile:
soft: 20000
hard: 40000
20、entrypoint
指定服務(wù)容器啟動后執(zhí)行的入口文件
entrypoint: /code/entrypoint.sh
21、user
指定容器中運行應(yīng)用的用戶名
22、working_dir
指定容器中工作目錄
working_dir: /data/www
23、domainname
指定容器中搜索域名
domainname: your_domain.com
24、hostname
指定容器中主機名
25、mac_address
指定容器中mac地址
mac_address: 01-02-22-0A-0B
26、privileged
允許容器中運行一些特權(quán)命令
privileged: true
27、restart
指定容器退出后的重啟策略為始終重啟。在生產(chǎn)環(huán)境中推薦配置為 always 或者 unless-stopped
restart: always
28、read_only
以只讀模式掛載容器的root文件系統(tǒng),意味著不能對容器內(nèi)容進行修改
read_only: true
29、stdin_open
打開標準輸入,可以接受外部輸入
stdin_open: true
30、tty
模擬一個偽終端
tty: true
到此這篇關(guān)于docker-compose.yml文件常用模版命令的文章就介紹到這了,更多相關(guān)docker-compose.yml模版命令內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/Chen_start02/article/details/121355192