Docker Compose 兩種安裝與使用方案(適用于 Docker 19.03 版本)
前言
在實(shí)際運(yùn)維中,我們經(jīng)常會(huì)遇到不同機(jī)器上 Docker 版本不一致的情況,尤其是很多生產(chǎn)服務(wù)器還在運(yùn)行較老的 Docker Engine 版本(如 19.03.x)。這時(shí)候安裝 Docker Compose 就會(huì)有兩種完全不同的方式:
- 方式一:獨(dú)立二進(jìn)制版(docker-compose,帶連字符) —— 經(jīng)典的 Compose V1
- 方式二:CLI 插件版(docker compose,無(wú)連字符) —— 現(xiàn)代的 Compose V2/V5
本文以 Docker 19.03.15(Ubuntu 20.04)為例,詳細(xì)對(duì)比這兩種方式的安裝、使用和特點(diǎn),幫助你快速選擇適合自己的方案。
1. 方式一:獨(dú)立二進(jìn)制版(docker-compose)
這是最傳統(tǒng)、最兼容的方式,適用于所有 Docker 版本(甚至非常老的版本)。
安裝步驟
# 下載 Compose V1 最后一個(gè)穩(wěn)定版(1.29.2) sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # 添加執(zhí)行權(quán)限 sudo chmod +x /usr/local/bin/docker-compose # 驗(yàn)證 docker-compose --version # 輸出:docker-compose version 1.29.2, build 5becea4c
特點(diǎn)
- 命令:
docker-compose up -d、docker-compose --env-file .env up -d - 完全獨(dú)立于 Docker Engine,不依賴任何插件機(jī)制
- 支持
--env-file多文件加載(你的需求完全滿足) docker info中不會(huì)顯示 compose 插件信息- 已被官方標(biāo)記為“維護(hù)模式”(不再新增功能,但仍可正常使用)
優(yōu)點(diǎn)
- 兼容性極強(qiáng),幾乎能在任何 Docker 版本上運(yùn)行
- 安裝簡(jiǎn)單、一行命令搞定
- 不需要升級(jí) Docker Engine
缺點(diǎn)
- 命令帶連字符(與新版不統(tǒng)一)
- 缺少 Compose V2 的新特性(如更好的 profiles、build secrets 支持)
2. 方式二:CLI 插件版(docker compose)
這是 Docker 官方目前推薦的方式,Compose 作為 Docker CLI 的插件存在。
安裝步驟(適用于 Docker 19.03+)
# 創(chuàng)建用戶級(jí)插件目錄(推薦) mkdir -p ~/.docker/cli-plugins # 下載最新 Compose V2(當(dāng)前推薦 v5.0.1,文件較大約60MB) curl -SL https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose # 如果下載慢,可加國(guó)內(nèi)代理 # curl -SL https://ghfast.top//https://github.com/docker/compose/releases/download/v5.0.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose # 添加執(zhí)行權(quán)限 chmod +x ~/.docker/cli-plugins/docker-compose # 驗(yàn)證 docker compose version # 輸出:Docker Compose version v5.0.1 docker info | grep -i compose # 輸出:compose: Docker Compose (Docker Inc., v5.0.1)
特點(diǎn)
- 命令:
docker compose up -d、docker compose --env-file .env --env-file .env.other up -d - 完全集成到 Docker CLI 中
docker info會(huì)明確顯示 compose 插件信息(和其他機(jī)器一致)- 支持所有新版 Compose 特性
優(yōu)點(diǎn)
- 命令風(fēng)格統(tǒng)一(docker compose、docker buildx 等)
- 獲得最新功能和安全更新
- 官方主力維護(hù)方向
缺點(diǎn)
- 二進(jìn)制文件較大(60MB vs V1 的 12MB)
- 手動(dòng)安裝稍復(fù)雜(需放到正確插件目錄)
- 如果 Docker 版本過老(如 <19.03),可能不被識(shí)別
對(duì)比總結(jié)表
| 項(xiàng)目 | 方式一(V1 獨(dú)立版) | 方式二(V2 插件版) |
|---|---|---|
| 命令 | docker-compose(帶-) | docker compose(空格) |
| 安裝難度 | 極簡(jiǎn)單 | 稍復(fù)雜(需放插件目錄) |
| 文件大小 | ~12MB | ~60MB |
| docker info 顯示插件 | 不顯示 | 顯示 compose 插件版本 |
| 是否支持 --env-file | 支持(多文件) | 支持(多文件) |
| 兼容 Docker 19.03 | 完美 | 完美 |
| 官方維護(hù)狀態(tài) | 維護(hù)模式(不再更新) | 積極維護(hù)(持續(xù)更新) |
| 推薦場(chǎng)景 | 快速解決、不想升級(jí) Docker 的老服務(wù)器 | 追求統(tǒng)一體驗(yàn)、愿意接受新版本的團(tuán)隊(duì) |
結(jié)論與建議
- 如果你只想快速解決問題:強(qiáng)烈推薦方式一(獨(dú)立二進(jìn)制版)。一行命令安裝,幾秒鐘搞定,功能完全夠用。
- 如果你追求和團(tuán)隊(duì)其他機(jī)器統(tǒng)一體驗(yàn)(docker info 顯示插件、命令無(wú)連字符):使用方式二(插件版),效果和其他新機(jī)器完全一致。
- 長(zhǎng)期建議:找機(jī)會(huì)升級(jí) Docker Engine 到最新版(28.x+),通過
apt install docker-compose-plugin一鍵安裝插件,徹底告別手動(dòng)操作。
到此這篇關(guān)于Docker Compose 兩種安裝與使用方案(適用于 Docker 19.03 版本)的文章就介紹到這了,更多相關(guān)Docker Compose 安裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用docker搭建go環(huán)境的簡(jiǎn)單步驟
最近公司里面的項(xiàng)目用到了Docker,正好準(zhǔn)備學(xué)習(xí)下Golang,所以就學(xué)習(xí)Golang順便也學(xué)習(xí)下Docker怎么用的,剛好從頭開始配置下環(huán)境,這篇文章主要給大家介紹了關(guān)于使用docker搭建go環(huán)境的簡(jiǎn)單步驟,需要的朋友可以參考下2023-10-10
docker實(shí)現(xiàn)MySQL的主從復(fù)制
在學(xué)習(xí)項(xiàng)目的時(shí)候?qū)崿F(xiàn)讀寫分離用到了主從復(fù)制,但是一般要實(shí)現(xiàn)的話需要虛擬機(jī)或服務(wù)器非常麻煩,但是docker可以完美解決這一問題,本文主要介紹了docker實(shí)現(xiàn)MySQL的主從復(fù)制,感興趣的可以了解一下2024-01-01
docker安裝nacos并配置數(shù)據(jù)庫(kù)的全過程
這篇文章主要給大家介紹了關(guān)于docker安裝nacos并配置數(shù)據(jù)庫(kù)的相關(guān)資料, Nacos是SpringCloudAlibaba架構(gòu)中最重要的組件,Nacos 是一個(gè)更易于幫助構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、配置和服務(wù)管理平臺(tái),文中介紹的非常信息,需要的朋友可以參考下2023-09-09
Docker出現(xiàn)Cannot connect to the Docker daemon. Is the docker d
這篇文章主要介紹了Docker出現(xiàn)Cannot connect to the Docker daemon. Is the docker daemon running on this host錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12
docker 實(shí)現(xiàn)容器與宿主機(jī)無(wú)縫調(diào)用shell命令
這篇文章主要介紹了docker 實(shí)現(xiàn)容器與宿主機(jī)無(wú)縫調(diào)用shell命令的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想過來(lái)看看吧2021-03-03
基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實(shí)現(xiàn)
這篇文章主要介紹了基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-12-12
docker環(huán)境下java參數(shù)傳遞與獲取
這篇文章主要為大家詳細(xì)介紹了docker環(huán)境下如何實(shí)現(xiàn)java參數(shù)傳遞與獲取,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以了解下2025-08-08
Docker部署MySQL主從復(fù)制的實(shí)現(xiàn)
本文主要介紹了Docker部署MySQL主從復(fù)制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10

