docker compose up 命令默認(rèn)配置文件自動(dòng)查找規(guī)則詳解
前言
如果你經(jīng)常使用 Docker Compose 來(lái)管理多容器應(yīng)用,一定會(huì)遇到這樣的場(chǎng)景:在項(xiàng)目目錄下直接敲 docker compose up,然后它就“神奇地”找到了你的配置文件。但如果你沒(méi)指定 -f 參數(shù),它到底是怎么找到文件的呢?
默認(rèn)查找順序
當(dāng)你運(yùn)行 docker compose up(注意是帶空格的 V2 版本命令)而沒(méi)有使用 -f 指定配置文件時(shí),Docker Compose 會(huì)按照嚴(yán)格的優(yōu)先級(jí)順序在當(dāng)前工作目錄中自動(dòng)查找以下文件:
compose.yaml(官方強(qiáng)烈推薦,最高優(yōu)先級(jí))compose.ymldocker-compose.yamldocker-compose.yml(為了兼容老項(xiàng)目保留)
只要找到第一個(gè)存在的文件,它就會(huì)停止查找并使用該文件。
注意:這個(gè)順序是有先后順序的!如果你目錄里同時(shí)存在
compose.yaml和docker-compose.yml,Docker Compose 會(huì)優(yōu)先選擇compose.yaml。
為什么推薦使用compose.yaml?
從 Docker Compose V2 開始(也就是現(xiàn)在集成在 Docker CLI 中的版本),官方明確推薦使用 compose.yaml 作為默認(rèn)文件名。主要原因有:
- 更簡(jiǎn)潔(去掉了多余的連字符)
- 與現(xiàn)代 YAML 命名規(guī)范更一致
- 避免與已棄用的舊工具
docker-compose(帶連字符的獨(dú)立版本)混淆 - 更好的向前兼容性:新項(xiàng)目統(tǒng)一用
compose.yaml,老項(xiàng)目繼續(xù)支持舊名字
你可以把這當(dāng)成一個(gè)“最佳實(shí)踐”:新項(xiàng)目一律用 compose.yaml。
實(shí)際例子
假設(shè)你的項(xiàng)目目錄結(jié)構(gòu)如下:
my-app/ ├── compose.yaml ├── compose.yml ├── docker-compose.yml └── Dockerfile
執(zhí)行 docker compose up 時(shí):
- 會(huì)直接使用
compose.yaml - 完全忽略其他同類文件
如果你刪掉 compose.yaml,它才會(huì)依次嘗試 compose.yml,再往后是 docker-compose.yml。
關(guān)于 Override 文件
同樣的規(guī)則也適用于 override 文件(用于覆蓋主配置):
- 默認(rèn)會(huì)查找
compose.override.yaml或compose.override.yml - 舊格式
docker-compose.override.yml也支持,但優(yōu)先級(jí)較低
小貼士
想明確指定文件?始終使用 -f 參數(shù),例如:
docker compose -f docker-compose.yml up
多配置文件合并?可以用多個(gè) -f:
docker compose -f compose.yaml -f compose.prod.yaml up
檢查當(dāng)前使用的配置文件?運(yùn)行:
docker compose config
它會(huì)顯示最終合并后的配置。
總結(jié)
Docker Compose 的配置文件查找規(guī)則其實(shí)非常人性化:既保留了對(duì)老項(xiàng)目的兼容性,又在推動(dòng)大家向更現(xiàn)代的命名方式遷移。
建議所有新項(xiàng)目立即切換到 compose.yaml,既符合官方推薦,也能避免未來(lái)可能的兼容性困擾。
下次運(yùn)行 docker compose up 時(shí),不妨檢查一下你的項(xiàng)目里用的是哪個(gè)文件名——也許是時(shí)候重命名了呢?
到此這篇關(guān)于docker compose up 命令,默認(rèn)配置文件自動(dòng)查找規(guī)則的文章就介紹到這了,更多相關(guān)docker compose up 命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Docker compose up -d與Docker restart的區(qū)別
- docker-compose up -d和docker-compose up --build的區(qū)別
- docker-compose?up?-d遇到的問(wèn)題及解決
- Docker Compose環(huán)境變量與配置文件管理全解析
- docker常用容器啟動(dòng)docker-compose.yml配置文件使用
- 關(guān)于immich?docker-compose.yml配置文件詳解
- Docker配置文件docker-compose.yml使用指南
- 詳解Docker Compose配置文件參數(shù)
相關(guān)文章
Docker從0到1實(shí)現(xiàn)項(xiàng)目編排部署
Docker編排是管理和協(xié)調(diào)多個(gè)Docker容器的工具和技術(shù),目的是簡(jiǎn)化容器的部署、擴(kuò)展和管理流程,本文主要介紹了Docker從0到1實(shí)現(xiàn)項(xiàng)目編排部署,感興趣的可以了解一下2025-03-03
Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹
這篇文章主要介紹了 Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器詳細(xì)介紹的相關(guān)資料,這里對(duì)Docker 數(shù)據(jù)卷,數(shù)據(jù)卷容器的感念及相關(guān)操作進(jìn)行了介紹,需要的朋友可以參考下2016-11-11
Docker安裝RabbitMQ AMQP協(xié)議及重要角色
這篇文章主要為大家介紹了Docker安裝RabbitMQ AMQP協(xié)議和主要角色詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
docker學(xué)習(xí)筆記之把容器commit成鏡像的方法
本篇文章主要介紹了docker學(xué)習(xí)筆記之把容器commit成鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Docker創(chuàng)建Mysql容器的簡(jiǎn)單步驟
這篇文章主要給大家介紹了關(guān)于Docker創(chuàng)建Mysql容器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

