安裝 docker compose v2版 筆記250731
簡述
v2版是插件形式
確認系統要求, 已安裝 Docker Engine(版本 20.10.5 或更高)
安裝方式可分為
-
apt 或 yum 安裝 (能自動升級)
apt install docker-compose-plugin
yum install docker-compose-plugin
-
手動二進制文件安裝 (需手動升級): 下載二進制文件放入特定的
docker/cli-plugins
文件夾中- 下載頁面: https://github.com/docker/compose/releases
- 用戶級安裝放入用戶文件夾中的
$HOME/.docker/cli-plugins
=~/.docker/cli-plugins
如/root/.docker/cli-plugins
- 系統級安裝放入系統文件夾中, 以下選其一
/usr/local/lib/docker/cli-plugins
/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
/usr/libexec/docker/cli-plugins
通過手動安裝二進制文件的方式
下載頁面: https://github.com/docker/compose/releases
用戶級手動安裝二進制文件
-
創建 Docker CLI 插件目錄(如果不存在):
mkdir -p ~/.docker/cli-plugins/
-
下載 Docker Compose 二進制文件:
# 適用于 x86_64 系統 curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose# 適用于 ARM64 系統(如樹莓派) # curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-aarch64 -o ~/.docker/cli-plugins/docker-compose
-
授予執行權限:
chmod +x ~/.docker/cli-plugins/docker-compose
-
驗證安裝:
docker compose version
合成一步
# 1. 創建插件目錄
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins# 2. 下載最新版二進制文件(替換版本號)
# 查看最新版本:https://github.com/docker/compose/releases
COMPOSE_VERSION=v2.39.1 # 替換為最新版本
ARCH=$(uname -m) # 自動檢測架構curl -SL "https://github.com/docker/compose/releases/download/$COMPOSE_VERSION/docker-compose-linux-$ARCH" \-o $DOCKER_CONFIG/cli-plugins/docker-compose# 3. 賦予執行權限
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose# 4. 驗證安裝
docker compose version
安裝最新版
# 創建插件目錄
mkdir -p ~/.docker/cli-plugins# 下載最新版 V2 二進制文件
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o ~/.docker/cli-plugins/docker-compose# 添加執行權限
chmod +x ~/.docker/cli-plugins/docker-compose# 驗證安裝
docker compose version
系統級手動安裝二進制文件
# 1. 創建插件目錄
DOCKER_COMPOSE_FolderPath='/usr/local/lib/docker/cli-plugins'
#DOCKER_COMPOSE_FolderPath='/usr/local/libexec/docker/cli-plugins'
#DOCKER_COMPOSE_FolderPath='/usr/lib/docker/cli-plugins'
#DOCKER_COMPOSE_FolderPath='/usr/libexec/docker/cli-plugins'
mkdir -p $DOCKER_COMPOSE_FolderPath# 2. 下載最新版二進制文件(替換版本號)
# 查看最新版本:https://github.com/docker/compose/releases
COMPOSE_VERSION=v2.39.1 # 替換為最新版本
ARCH=$(uname -m) # 自動檢測架構curl -SL "https://github.com/docker/compose/releases/download/$COMPOSE_VERSION/docker-compose-linux-$ARCH" \-o $DOCKER_COMPOSE_FolderPath/docker-compose# 3. 賦予執行權限
chmod +x $DOCKER_COMPOSE_FolderPath/docker-compose# 4. 驗證安裝
docker compose version
安裝最新版
# 創建插件目錄 以下四選一
mkdir -p '/usr/local/lib/docker/cli-plugins' && cd $_
#mkdir -p '/usr/local/libexec/docker/cli-plugins' && cd $_
#mkdir -p '/usr/lib/docker/cli-plugins' && cd $_
#mkdir -p '/usr/libexec/docker/cli-plugins' && cd $_# 下載最新版 V2 二進制文件
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o docker-compose# 添加執行權限
chmod +x docker-compose# 驗證安裝
docker compose version
通過 Docker 官方倉庫安裝(apt , dnf , yum)
# Ubuntu/Debian 系統
sudo apt-get update
sudo apt-get install docker-compose-plugin# CentOS/RHEL/Fedora 系統
sudo yum update
sudo yum install docker-compose-plugin
通過 Docker 官方倉庫安裝(適用于 Debian/Ubuntu)
-
添加 Docker 倉庫(如果已安裝 Docker Engine,可跳過):
sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
安裝 Docker Compose 插件:
sudo apt-get update sudo apt-get install docker-compose-plugin
-
驗證安裝:
docker compose version
卸載舊版 docker-compose
(可選)
如果已安裝舊版(Python 編寫的 docker-compose v1
),建議卸載以避免沖突:
# 卸載通過 Pip 安裝的舊版
sudo pip uninstall docker-compose# 或卸載通過 apt 安裝的舊版
sudo apt remove docker-compose
使用 Docker Compose v2
- 新命令格式(注意空格):
docker compose [COMMAND] # 如 docker compose up
- 兼容原有
docker-compose.yml
文件。
常見問題
-
權限錯誤:確保當前用戶屬于
docker
用戶組:sudo usermod -aG docker $USER newgrp docker # 刷新組權限
-
命令未找到:
- 檢查
~/.docker/cli-plugins/
目錄是否存在且包含docker-compose
文件。 - 確保已正確設置執行權限(
chmod +x
)。
- 檢查
-
版本沖突:徹底卸載舊版
docker-compose
。
參考文檔:Docker Compose GitHub Releases
1?? 參考 1 翻譯官方文檔: Install the Docker Compose plugin 安裝 docker compose 插件
Install the Docker Compose plugin 原文
Install the Docker Compose plugin
This page contains instructions on how to install the Docker Compose plugin on Linux from the command line.
To install the Docker Compose plugin on Linux, you can either:
- Set up Docker’s repository on your Linux system.
- Install manually.
[!NOTE]
These instructions assume you already have Docker Engine and Docker CLI installed and now want to install the Docker Compose plugin.
Install using the repository
-
Set up the repository. Find distribution-specific instructions in:
Ubuntu |
CentOS |
Debian |
Raspberry Pi OS |
Fedora |
RHEL |
SLES. -
Update the package index, and install the latest version of Docker Compose:
-
For Ubuntu and Debian, run:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
-
For RPM-based distributions, run:
$ sudo yum update $ sudo yum install docker-compose-plugin
-
-
Verify that Docker Compose is installed correctly by checking the version.
$ docker compose version
???? Update Docker Compose
To update the Docker Compose plugin, run the following commands:
-
For Ubuntu and Debian, run:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
-
For RPM-based distributions, run:
$ sudo yum update $ sudo yum install docker-compose-plugin
Install the plugin manually
[!WARNING]
Manual installations don’t auto-update. For ease of maintenance, use the Docker repository method.
-
To download and install the Docker Compose CLI plugin, run:
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} $ mkdir -p $DOCKER_CONFIG/cli-plugins $ curl -SL https://github.com/docker/compose/releases/download/{{% param "compose_version" %}}/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
This command downloads and installs the latest release of Docker Compose for the active user under
$HOME
directory.To install:
- Docker Compose for all users on your system, replace
~/.docker/cli-plugins
with/usr/local/lib/docker/cli-plugins
. - A different version of Compose, substitute
{{% param "compose_version" %}}
with the version of Compose you want to use. - For a different architecture, substitute
x86_64
with the architecture you want.
- Docker Compose for all users on your system, replace
-
Apply executable permissions to the binary:
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
or, if you chose to install Compose for all users:
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
Test the installation.
$ docker compose version
What’s next?
- Understand how Compose works
- Try the Quickstart guide
Install the Docker Compose plugin 翻譯1
Docker Compose 插件安裝指南
本文檔提供 Linux 系統命令行安裝 Docker Compose 插件的完整指引。
[!注意]
本指南默認您已安裝 Docker Engine 和 Docker CLI,現需補充安裝 Docker Compose 插件。
一、通過軟件倉庫安裝(推薦)
???? 1. 配置 Docker 軟件倉庫
根據發行版選擇對應指南:
- Ubuntu
- CentOS
- Debian
- 樹莓派系統
- Fedora
- RHEL
- SLES
???? 2. 安裝最新版 Docker Compose
Ubuntu/Debian 系統:
sudo apt-get update
sudo apt-get install docker-compose-plugin
基于 RPM 的系統(CentOS/RHEL/Fedora):
sudo yum update
sudo yum install docker-compose-plugin
???? 3. 驗證安裝
docker compose version
???? 4. 升級方法
重復執行對應系統的安裝命令即可升級至最新版本:
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install docker-compose-plugin # RPM 系統
sudo yum update && sudo yum install docker-compose-plugin
二、手動安裝插件
[!警告]
手動安裝無法自動更新!建議優先使用倉庫安裝方式以簡化維護。
???? 1. 下載并安裝插件
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
自定義選項:
場景 | 操作方式 |
---|---|
為所有用戶安裝 | 將 ~/.docker/cli-plugins 替換為 /usr/local/lib/docker/cli-plugins |
安裝特定版本 | 將鏈接中的 v2.39.1 替換為目標版本號 |
其他 CPU 架構 | 將 x86_64 改為目標架構(如 aarch64 ) |
???? 2. 添加執行權限
當前用戶安裝:
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
系統級安裝:
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
???? 3. 驗證安裝
docker compose version
? 輸出示例:Docker Compose version v2.39.1
后續步驟
- 理解 Compose 工作原理
- 快速入門指南
關鍵說明:
- 倉庫安裝自動處理依賴和更新
- 手動安裝需定期檢查 GitHub 發布頁 獲取更新
- 使用
docker compose
(V2 新版命令)而非舊版docker-compose
Install the Docker Compose plugin 翻譯2
安裝 Docker Compose 插件
本文檔提供在 Linux 命令行環境下安裝 Docker Compose 插件的詳細指南。
安裝方式選擇:
- 通過軟件倉庫安裝
- 手動安裝
[!注意]
本指南假設您已安裝 Docker Engine 和 Docker CLI,現在僅需安裝 Docker Compose 插件。
通過軟件倉庫安裝
-
設置軟件倉庫
各發行版配置指南:
Ubuntu |
CentOS |
Debian |
樹莓派 OS |
Fedora |
RHEL |
SLES -
安裝最新版本
- Ubuntu/Debian 系統:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
- RPM 系發行版(CentOS/RHEL/Fedora):
$ sudo yum update $ sudo yum install docker-compose-plugin
- Ubuntu/Debian 系統:
-
驗證安裝
$ docker compose version
???? 更新 Docker Compose
執行對應系統的安裝命令即可更新:
- Ubuntu/Debian:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
- RPM 系發行版:
$ sudo yum update $ sudo yum install docker-compose-plugin
手動安裝
[!警告]
手動安裝不支持自動更新。為便于維護,建議使用軟件倉庫安裝方式。
-
下載并安裝插件
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} $ mkdir -p $DOCKER_CONFIG/cli-plugins $ curl -SL https://github.com/docker/compose/releases/download/{{% param "compose_version" %}}/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
- 全局安裝:將
~/.docker/cli-plugins
替換為/usr/local/lib/docker/cli-plugins
- 指定版本:替換
{{% param "compose_version" %}}
為目標版本號 - 其他架構:替換
x86_64
為 目標架構
- 全局安裝:將
-
授予執行權限
- 當前用戶安裝:
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
- 全局安裝:
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
- 當前用戶安裝:
-
驗證安裝
$ docker compose version
后續步驟
- 理解 Compose 工作原理
- 快速入門指南
術語對照表
英文術語 | 中文翻譯 |
---|---|
CLI plugin | CLI 插件 |
RPM-based distributions | RPM 系發行版 |
active user | 當前用戶 |
executable permissions | 執行權限 |
maintainability | 可維護性 |
Install the Docker Compose plugin 翻譯3
以下是對 Docker Compose 插件安裝指南的專業中文翻譯:
安裝 Docker Compose 插件
本文檔介紹如何在 Linux 命令行環境中安裝 Docker Compose 插件。
在 Linux 上安裝 Docker Compose 插件有兩種方式:
- 通過軟件倉庫安裝
- 手動安裝
[!注意]
本指南假定您已安裝 Docker Engine 和 Docker CLI,現在需要安裝 Docker Compose 插件。
通過軟件倉庫安裝
-
設置軟件倉庫
查看發行版專屬安裝指南:- Ubuntu
- CentOS
- Debian
- Raspberry Pi OS
- Fedora
- RHEL
- SLES
-
安裝最新版 Docker Compose
- Ubuntu/Debian 系統:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
- 基于 RPM 的發行版:
$ sudo yum update $ sudo yum install docker-compose-plugin
- Ubuntu/Debian 系統:
-
驗證安裝
$ docker compose version
???? 更新 Docker Compose
執行對應發行版的安裝命令即可更新:
- Ubuntu/Debian:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
- 基于 RPM 的發行版:
$ sudo yum update $ sudo yum install docker-compose-plugin
手動安裝插件
[!警告]
手動安裝不會自動更新。為便于維護,建議使用軟件倉庫安裝方式。
-
下載并安裝插件
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} $ mkdir -p $DOCKER_CONFIG/cli-plugins $ curl -SL https://github.com/docker/compose/releases/download/{{% param "compose_version" %}}/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
- 系統級安裝:將
~/.docker/cli-plugins
替換為/usr/local/lib/docker/cli-plugins
- 指定版本:替換 URL 中的
{{% param "compose_version" %}}
- 其他架構:將
x86_64
替換為目標架構(查看架構支持)
- 系統級安裝:將
-
賦予執行權限
- 當前用戶安裝:
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
- 系統級安裝:
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
- 當前用戶安裝:
-
驗證安裝
$ docker compose version
后續步驟
- 理解 Compose 工作原理
- 嘗試快速入門指南
關鍵術語說明:
- CLI 插件:Docker Compose V2 作為 Docker 命令行的擴展插件運行
- 軟件倉庫安裝:官方推薦的自動更新方案
DOCKER_CONFIG
變量:定義 Docker 配置路徑,默認為$HOME/.docker
- 架構標識:需根據處理器類型選擇正確版本(x86_64/arm64等)
- 占位符
{{% param "compose_version" %}}
:實際使用時需替換為具體版本號(如 v2.24.5)
2?? 參考 2 翻譯官方文檔 Install using the repository 用倉庫安裝
Install using the repository 原文
Install using the repository
-
Set up the repository. Find distribution-specific instructions in:
Ubuntu |
CentOS |
Debian |
Raspberry Pi OS |
Fedora |
RHEL |
SLES. -
Update the package index, and install the latest version of Docker Compose:
-
For Ubuntu and Debian, run:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
-
For RPM-based distributions, run:
$ sudo yum update $ sudo yum install docker-compose-plugin
-
-
Verify that Docker Compose is installed correctly by checking the version.
$ docker compose version
Install using the repository 翻譯
???? 通過軟件倉庫安裝 Docker Compose(官方推薦方式)
???????? 1. 設置軟件倉庫
根據您的 Linux 發行版選擇對應的設置指南:
- Ubuntu |
- CentOS |
- Debian |
- Raspberry Pi OS |
- Fedora |
- RHEL |
- SLES
???????? 2. 安裝最新版 Docker Compose
更新軟件包索引并安裝 Docker Compose 插件:
Ubuntu/Debian 系統:
sudo apt-get update
sudo apt-get install docker-compose-plugin
基于 RPM 的系統 (CentOS/RHEL/Fedora):
sudo yum update
sudo yum install docker-compose-plugin
???????? 3. 驗證安裝
檢查 Docker Compose 版本確認安裝成功:
docker compose version
???? 更新 Docker Compose
保持最新版本的升級方法:
Ubuntu/Debian 系統:
sudo apt-get update
sudo apt-get install docker-compose-plugin
基于 RPM 的系統 (CentOS/RHEL/Fedora):
sudo yum update
sudo yum install docker-compose-plugin
關鍵說明:
- ? 此方法自動處理依賴關系和后續更新
- 🔄 每次執行安裝命令會自動升級到最新版本
- 📦 安裝的插件名稱為
docker-compose-plugin
- 🌐 確保系統能正常訪問 Docker 官方倉庫
Install using the repository 翻譯2
???? 通過軟件倉庫安裝
-
設置軟件倉庫
各發行版專屬配置指南:
Ubuntu |
CentOS |
Debian |
樹莓派 OS |
Fedora |
RHEL |
SLES -
安裝最新版本
- Ubuntu/Debian 系統:
$ sudo apt-get update $ sudo apt-get install docker-compose-plugin
- 基于 RPM 的發行版(CentOS/RHEL/Fedora):
$ sudo yum update $ sudo yum install docker-compose-plugin
- Ubuntu/Debian 系統:
-
驗證安裝
$ docker compose version
注:執行驗證命令后,終端將顯示類似
Docker Compose version v2.24.7
的版本信息,表明安裝成功。
Install using the repository 翻譯3
???? 通過軟件倉庫安裝(推薦方式)
???????? 1. 配置軟件倉庫
根據您的 Linux 發行版選擇對應配置指南:
- Ubuntu
- CentOS
- Debian
- 樹莓派系統
- Fedora
- RHEL
- SLES
???????? 2. 安裝最新版 Docker Compose
Ubuntu/Debian 系統:
sudo apt-get update
sudo apt-get install docker-compose-plugin
基于 RPM 的系統(CentOS/RHEL/Fedora):
sudo yum update
sudo yum install docker-compose-plugin
???????? 3. 驗證安裝
docker compose version
? 成功安裝將顯示版本號,例如:Docker Compose version v2.39.1
關鍵說明:
- 🔄 此方法自動處理更新,安裝后可通過系統包管理器升級
- 📦 安裝的是
docker-compose-plugin
官方插件包- 🌐 需確保系統能訪問 Docker 官方軟件源
- 💻 驗證命令使用新版格式
docker compose
(非舊版docker-compose
)
3?? 參考 3 翻譯官方文檔 Install the plugin manually 手動安裝 Docker Compose 插件
Install the plugin manually 原文
[!WARNING]
Manual installations don’t auto-update. For ease of maintenance, use the Docker repository method.
-
To download and install the Docker Compose CLI plugin, run:
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} $ mkdir -p $DOCKER_CONFIG/cli-plugins $ curl -SL https://github.com/docker/compose/releases/download/{{% param "compose_version" %}}/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
This command downloads and installs the latest release of Docker Compose for the active user under
$HOME
directory.To install:
- Docker Compose for all users on your system, replace
~/.docker/cli-plugins
with/usr/local/lib/docker/cli-plugins
. - A different version of Compose, substitute
{{% param "compose_version" %}}
with the version of Compose you want to use. - For a different architecture, substitute
x86_64
with the architecture you want.
- Docker Compose for all users on your system, replace
-
Apply executable permissions to the binary:
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
or, if you chose to install Compose for all users:
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
Test the installation.
$ docker compose version
Install the plugin manually 翻譯
手動安裝插件
[!警告]
手動安裝無法自動更新! 為簡化維護流程,強烈建議優先使用 Docker 倉庫安裝方式。
???? 1. 下載并安裝插件
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
此命令將為當前用戶下載最新版 Docker Compose 到 $HOME
目錄。
自定義安裝選項:
場景 | 操作方式 |
---|---|
為所有用戶安裝 | 將 ~/.docker/cli-plugins 替換為 /usr/local/lib/docker/cli-plugins |
安裝特定版本 | 將鏈接中的 v2.39.1 替換為目標版本號 |
其他 CPU 架構 | 將 x86_64 改為目標架構(如 aarch64 ) |
???? 2. 添加執行權限
當前用戶安裝:
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
系統級安裝:
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
???? 3. 驗證安裝
docker compose version
? 成功輸出示例:Docker Compose version v2.39.1
關鍵說明:
- 此方式需定期手動檢查 GitHub 發布頁 獲取更新
- 升級時需重復下載步驟覆蓋舊文件
- 變量
{{% param "compose_version" %}}
需替換為具體版本號(如v2.39.1
)- 完整架構列表參見:官方發布頁面
Install the plugin manually 翻譯2
???? 手動安裝插件
[!警告]
手動安裝不支持自動更新。為便于維護,強烈推薦使用 Docker 軟件倉庫安裝方式。
-
下載并安裝 CLI 插件
$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} $ mkdir -p $DOCKER_CONFIG/cli-plugins $ curl -SL https://github.com/docker/compose/releases/download/{{% param "compose_version" %}}/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
此命令將為當前用戶下載最新版 Docker Compose 到
$HOME
目錄定制選項:
- 全局安裝:將
~/.docker/cli-plugins
替換為/usr/local/lib/docker/cli-plugins
- 指定版本:將
{{% param "compose_version" %}}
替換為目標版本(如v2.24.7
) - 其他架構:將
x86_64
替換為 支持架構(如aarch64
)
- 全局安裝:將
-
授予執行權限
- 當前用戶安裝:
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
- 全局安裝:
$ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
- 當前用戶安裝:
-
驗證安裝
$ docker compose version
成功安裝將顯示版本信息(如
Docker Compose version v2.24.7
)
???? 關鍵參數說明
參數 | 作用 |
---|---|
$DOCKER_CONFIG | 自動定位 Docker 配置目錄 |
mkdir -p | 遞歸創建目錄(不存在時自動建立) |
curl -SL | 支持重定向的靜默下載 |
chmod +x | 添加可執行權限 |
{{% param ... %}} | 需替換為具體版本號的實際值 |
Install the plugin manually 翻譯3
以下是對 Docker Compose 手動安裝插件 部分的專業中文翻譯:
手動安裝插件
警告
手動安裝不會自動更新。為便于維護,建議使用 Docker 軟件倉庫安裝方式。
執行以下命令下載并安裝 Docker Compose CLI 插件:
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.39.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
此命令將為當前用戶下載并安裝最新版 Docker Compose(安裝到 $HOME
目錄)。
安裝選項調整:
- 為系統所有用戶安裝
將~/.docker/cli-plugins
替換為/usr/local/lib/docker/cli-plugins
- 安裝特定版本
將 URL 中的v2.39.1
替換為目標版本號 - 安裝其他架構版本
將x86_64
替換為目標架構(如aarch64
)
賦予二進制文件執行權限:
- 當前用戶安裝:
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
- 系統級安裝:
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
驗證安裝:
docker compose version
關鍵說明:
- 環境變量
DOCKER_CONFIG
${DOCKER_CONFIG:-$HOME/.docker}
表示:優先使用預設的DOCKER_CONFIG
變量值,未設置則默認使用$HOME/.docker
- 目錄結構
CLI 插件必須安裝在cli-plugins
子目錄中 - 權限要求
chmod +x
是必要步驟,否則無法執行命令 - 版本控制
手動安裝需自行跟蹤GitHub 發布頁獲取更新 - 架構支持
常見架構標識:
x86_64
(Intel/AMD 64位) |aarch64
(ARM 64位) |armv7
(ARMv7) |ppc64le
(PowerPC)
4?? 參考 4 翻譯官方文檔: Migrate from Docker Compose v1 to v2 (從 Docker Compose v1 遷移至 v2)
Migrate from Docker Compose v1 to v2 原文
Migrate from Docker Compose v1 to v2
From July 2023, Compose v1 stopped receiving updates. It’s also no longer available in new releases of Docker Desktop.
Compose v2, which was first released in 2020, is included with all currently supported versions of Docker Desktop. It offers an improved CLI experience, improved build performance with BuildKit, and continued new-feature development.
How do I switch to Compose v2?
The easiest and recommended way is to make sure you have the latest version of Docker Desktop, which bundles the Docker Engine and Docker CLI platform including Compose v2.
With Docker Desktop, Compose v2 is always accessible as docker compose
.
For manual installs on Linux, you can get Compose v2 by either:
- Using Docker’s repository (recommended)
- Downloading and installing manually
What are the differences between Compose v1 and Compose v2?
???? docker-compose
vs docker compose
Unlike Compose v1, Compose v2 integrates into the Docker CLI platform and the recommended command-line syntax is docker compose
.
The Docker CLI platform provides a consistent and predictable set of options and flags, such as the DOCKER_HOST
environment variable or the --context
command-line flag.
This change lets you use all of the shared flags on the root docker
command.
For example, docker --log-level=debug --tls compose up
enables debug logging from the Docker Engine as well as ensuring that TLS is used for the connection.
[!TIP]
Update scripts to use Compose v2 by replacing the hyphen (
-
) with a space, usingdocker compose
instead ofdocker-compose
.
???? Service container names
Compose generates container names based on the project name, service name, and scale/replica count.
In Compose v1, an underscore (_
) was used as the word separator.
In Compose v2, a hyphen (-
) is used as the word separator.
Underscores aren’t valid characters in DNS hostnames.
By using a hyphen instead, Compose v2 ensures service containers can be accessed over the network via consistent, predictable hostnames.
For example, running the Compose command -p myproject up --scale=1 svc
results in a container named myproject_svc_1
with Compose v1 and a container named myproject-svc-1
with Compose v2.
[!TIP]
In Compose v2, the global
--compatibility
flag orCOMPOSE_COMPATIBILITY
environment variable preserves the Compose v1 behavior to use underscores (_
) as the word separator.
As this option must be specified for every Compose v2 command run, it’s recommended that you only use this as a temporary measure while transitioning to Compose v2.
???? Command-line flags and subcommands
Compose v2 supports almost all Compose V1 flags and subcommands, so in most cases, it can be used as a drop-in replacement in scripts.
???????? Unsupported in v2
The following were deprecated in Compose v1 and aren’t supported in Compose v2:
docker-compose scale
. Usedocker compose up --scale
instead.docker-compose rm --all
???????? Different in v2
The following behave differently between Compose v1 and v2:
Compose v1 | Compose v2 | |
---|---|---|
--compatibility | Deprecated. Migrates YAML fields based on legacy schema version. | Uses _ as word separator for container names instead of - to match v1. |
ps --filter KEY-VALUE | Undocumented. Allows filtering by arbitrary service properties. | Only allows filtering by specific properties, e.g. --filter=status=running . |
???? Environment variables
Environment variable behavior in Compose v1 wasn’t formally documented and behaved inconsistently in some edge cases.
For Compose v2, the Environment variables section covers both precedence as well as .env
file interpolation and includes many examples covering tricky situations such as escaping nested quotes.
Check if:
- Your project uses multiple levels of environment variable overrides, for example
.env
file and--env
CLI flags. - Any
.env
file values have escape sequences or nested quotes. - Any
.env
file values contain literal$
signs in them. This is common with PHP projects. - Any variable values use advanced expansion syntax, for example
${VAR:?error}
.
[!TIP]
Run
docker compose config
on the project to preview the configuration after Compose v2 has performed interpolation to
verify that values appear as expected.Maintaining backwards compatibility with Compose v1 is typically achievable by ensuring that literal values (no
interpolation) are single-quoted and values that should have interpolation applied are double-quoted.
What does this mean for my projects that use Compose v1?
For most projects, switching to Compose v2 requires no changes to the Compose YAML or your development workflow.
It’s recommended that you adapt to the new preferred way of running Compose v2, which is to use docker compose
instead of docker-compose
.
This provides additional flexibility and removes the requirement for a docker-compose
compatibility alias.
However, Docker Desktop continues to support a docker-compose
alias to redirect commands to docker compose
for convenience and improved compatibility with third-party tools and scripts.
Is there anything else I need to know before I switch?
???? Migrating running projects
In both v1 and v2, running up on a Compose project recreates service containers as needed. It compares the actual state in the Docker Engine to the resolved project configuration, which includes the Compose YAML, environment variables, and command-line flags.
Because Compose v1 and v2 name service containers differently, running up
using v2 the first time on a project with running services originally launched by v1, results in service containers being recreated with updated names.
Note that even if --compatibility
flag is used to preserve the v1 naming style, Compose still needs to recreate service containers originally launched by v1 the first time up
is run by v2 to migrate the internal state.
???? Using Compose v2 with Docker-in-Docker
Compose v2 is now included in the Docker official image on Docker Hub.
Additionally, a new docker/compose-bin image on Docker Hub packages the latest version of Compose v2 for use in multi-stage builds.
Can I still use Compose v1 if I want to?
Yes. You can still download and install Compose v1 packages, but you won’t get support from Docker if anything breaks.
[!WARNING]
The final Compose v1 release, version 1.29.2, was May 10, 2021. These packages haven’t received any security updates since then. Use at your own risk.
Additional Resources
- docker-compose v1 on PyPI
- docker/compose v1 on Docker Hub
- docker-compose v1 source on GitHub
Migrate from Docker Compose v1 to v2 翻譯
從 Docker Compose v1 遷移至 v2 指南
2023年7月起,Compose v1 已停止更新,且不再包含在新版 Docker Desktop 中。
Compose v2(2020年首發)隨所有當前支持的 Docker Desktop 版本提供,具備以下優勢:
- 🚀 優化的 CLI 體驗
- ?? 基于 BuildKit 的構建性能提升
- 🌟 持續的新功能開發
如何切換至 Compose v2?
???? 推薦方案:安裝最新版 Docker Desktop
- 自動集成 Docker Engine、Docker CLI 及 Compose v2
- 命令格式:
docker compose
(注意空格替代連字符)
???? Linux 手動安裝方案:
- 通過 Docker 倉庫安裝(推薦)
- 手動下載安裝
v1 與 v2 的核心差異
???? 1. 命令格式變更
v1 | v2 | |
---|---|---|
命令 | docker-compose | docker compose |
優勢 | - | 支持 Docker CLI 全局參數(如 --context , DOCKER_HOST )例: docker --log-level=debug compose up |
[!TIP]
遷移腳本:將所有docker-compose
替換為docker compose
???? 2. 容器命名規則
v1 示例 | v2 示例 | 原因 | |
---|---|---|---|
分隔符 | myproject_svc_1 | myproject-svc-1 | 下劃線 _ 不符合 DNS 主機名規范 |
兼容方案 | - | 啟動時添加全局參數:--compatibility 或 COMPOSE_COMPATIBILITY=true (臨時過渡使用) |
???? 3. 命令參數變更
命令 | v1 狀態 | v2 替代方案 |
---|---|---|
scale | ? 已棄用 | docker compose up --scale |
rm --all | ? 不支持 | 無直接替代 |
???? 4. 環境變量處理優化
v2 正式規范了環境變量的:
- 優先級規則
.env
文件插值- 特殊字符轉義(如
$
和嵌套引號)
[!TIP]
驗證配置:運行docker compose config
預覽解析后的配置
遷移影響與注意事項
???? 對現有項目的影響
- 多數項目 無需修改
compose.yaml
- 需將腳本中的
docker-compose
改為docker compose
- Docker Desktop 仍保留
docker-compose
別名(兼容第三方工具)
???? 首次遷移運行警告
?? 若對 v1 啟動的容器 首次運行 docker compose up
:
- 容器將按 v2 規則重建(因命名規則變更)
- 即使使用
--compatibility
參數也會觸發重建(需遷移內部狀態)
???? 特殊場景支持
場景 | 方案 |
---|---|
Docker-in-Docker | 使用 Docker 官方鏡像(含 v2) |
多階段構建 | 使用 docker/compose-bin 鏡像 |
v1 的后續支持
項目 | 狀態 |
---|---|
最終版本 | v1.29.2(2021年5月發布) |
安全更新 | ? 已停止 |
下載渠道 | PyPI · Docker Hub · GitHub |
[!WARNING]
風險提示:繼續使用 v1 可能面臨安全漏洞,且不受 Docker 官方支持
遷移資源
- Compose v2 完整文檔
- 環境變量處理詳解
- 容器命名兼容模式說明
Migrate from Docker Compose v1 to v2 翻譯2
從 Docker Compose v1 遷移至 v2
背景說明
自 2023 年 7 月起,Compose v1 已停止更新,且不再包含于新版 Docker Desktop 中。
Compose v2(2020 年首發)已集成至所有受支持的 Docker Desktop 版本,提供:
? 優化的 CLI 體驗
? 基于 BuildKit 的構建性能提升
? 持續的功能迭代
如何切換到 Compose v2?
推薦方案
升級至最新版 Docker Desktop,該版本已內置 Compose v2,直接使用 docker compose
命令即可。
Linux 手動遷移方案
- 通過 Docker 倉庫安裝(推薦)
- 手動下載安裝
v1 與 v2 的核心差異
???? 1. 命令格式變更
版本 | 命令格式 | 說明 |
---|---|---|
v1 | docker-compose | 獨立命令 |
v2 | docker compose | 集成至 Docker CLI 平臺,支持全局參數(如 --context 、DOCKER_HOST ) |
💡 遷移提示:將腳本中的
docker-compose
替換為docker compose
???? 2. 容器命名規則
版本 | 分隔符 | 示例 (-p myproject up --scale=1 svc ) |
---|---|---|
v1 | _ | myproject_svc_1 |
v2 | - | myproject-svc-1 |
?? 兼容性選項:
使用--compatibility
標志或COMPOSE_COMPATIBILITY
環境變量可臨時啟用 v1 命名規則(下劃線分隔)
???? 3. 命令參數變更
已棄用功能
docker-compose scale
→ 改用docker compose up --scale
docker-compose rm --all
行為差異
參數 | v1 行為 | v2 行為 |
---|---|---|
--compatibility | 遷移舊版 YAML 字段 | 容器名改用 _ 分隔符 |
ps --filter KEY-VALUE | 支持任意服務屬性過濾 | 僅支持特定屬性(如 --filter=status=running ) |
???? 4. 環境變量處理優化
v2 明確規范了:
- 變量優先級規則
.env
文件解析機制- 特殊字符處理(如
$
、嵌套引號)
💡 驗證建議:
執行docker compose config
預覽配置解析結果,確保變量值符合預期
遷移影響與注意事項
???? 對現有項目的影響
- 大多數項目無需修改 YAML 文件
- 需將工作流中的命令從
docker-compose
改為docker compose
- Docker Desktop 仍保留
docker-compose
別名以兼容舊腳本
???? 運行中項目的遷移
?? 首次切換時容器會重建
因命名規則差異,v2 首次啟動由 v1 創建的項目時:
- 停止舊容器(
myproject_svc_1
格式) - 創建新容器(
myproject-svc-1
格式)
即使使用
--compatibility
標志也會觸發重建
???? Docker-in-Docker 場景
- Docker 官方鏡像 已集成 Compose v2
- 多階段構建可使用 docker/compose-bin
關于繼續使用 v1 的警告
?? 強烈不建議繼續使用
- 最終版本 v1.29.2 發布于 2021 年 5 月 10 日
- 不再提供安全更新
- 官方停止支持
資源鏈接:
- PyPI 上的 v1 包
- Docker Hub 的 v1 鏡像
- GitHub v1 源碼
術語對照表
英文術語 | 中文翻譯 |
---|---|
drop-in replacement | 直接替代 |
word separator | 單詞分隔符 |
environment variable precedence | 環境變量優先級 |
compatibility flag | 兼容性標志 |
Docker-in-Docker | Docker 嵌套容器方案 |
Migrate from Docker Compose v1 to v2 翻譯3
以下是對 Docker Compose v1 遷移至 v2 指南的專業中文翻譯:
從 Docker Compose v1 遷移到 v2
自 2023 年 7 月起,Compose v1 已停止更新。新版本的 Docker Desktop 也不再包含 v1。
Compose v2(2020 年首次發布)已集成到所有當前支持的 Docker Desktop 版本中。它提供了更優的 CLI 體驗、通過 BuildKit 提升構建性能,并持續支持新功能開發。
如何切換到 Compose v2?
推薦方案:安裝最新版 Docker Desktop,該版本捆綁了包含 Compose v2 的 Docker Engine 和 Docker CLI 平臺。
在 Docker Desktop 中,始終可通過 docker compose
命令使用 Compose v2。
Linux 手動安裝方案:
- 通過 Docker 軟件倉庫安裝(推薦)
- 手動下載安裝
v1 與 v2 的主要差異
???? 命令格式:docker-compose
→ docker compose
Compose v2 已集成到 Docker CLI 平臺,命令格式改為 docker compose
(帶空格)。
此變更使您能使用 Docker 根命令的共享標志(如 DOCKER_HOST
環境變量或 --context
命令行標志):
docker --log-level=debug --tls compose up # 同時啟用調試日志和 TLS 連接
[!提示]
將腳本中的連字符(-
)替換為空格:docker compose
替代docker-compose
???? 服務容器命名規則
版本 | 命名規則 | 示例 (-p myproject up --scale=1 svc ) |
---|---|---|
v1 | 使用下劃線 _ 分隔單詞 | myproject_svc_1 |
v2 | 使用連字符 - 分隔單詞 | myproject-svc-1 |
[!提示]
v2 中可通過全局標志--compatibility
或環境變量COMPOSE_COMPATIBILITY
保留 v1 的下劃線命名規則(建議僅作為過渡期臨時方案)
???? 命令行標志與子命令
v2 支持絕大多數 v1 的 flags 和子命令,通常可直接替代舊版腳本。
???????? v2 不再支持的功能
docker-compose scale
→ 改用docker compose up --scale
docker-compose rm --all
???????? 行為變更的功能
功能 | Compose v1 | Compose v2 |
---|---|---|
--compatibility | 根據舊 schema 遷移 YAML 字段 | 改用 _ 作為容器名單詞分隔符(保持 v1 風格) |
ps --filter KEY-VALUE | 支持任意服務屬性過濾(未文檔化) | 僅支持特定屬性過濾(如 --filter=status=running ) |
???? 環境變量處理
v1 的環境變量行為未正式文檔化,且在某些邊界場景表現不一致。
v2 的環境變量文檔明確了:
- 變量優先級規則
.env
文件插值機制- 特殊場景處理(如轉義嵌套引號)
需重點檢查:
- 多級變量覆蓋(如同時使用
.env
和--env
) .env
中含轉義序列或嵌套引號的值- 含字面量
$
的值(常見于 PHP 項目) - 使用高級擴展語法的變量(如
${VAR:?error}
)
[!提示]
運行docker compose config
預覽配置插值結果,驗證是否符合預期。
保持 v1 兼容性建議:字面值用單引號,需插值的變量用雙引號。
對現有 v1 項目的影響
大多數項目無需修改 Compose YAML 或工作流。
推薦改用 docker compose
命令,這將提供額外靈活性并消除對 docker-compose
兼容性別名的依賴。
Docker Desktop 仍保留
docker-compose
別名(重定向到docker compose
)以兼容第三方工具和腳本。
遷移前的注意事項
???? 運行中項目的遷移
當 v1 和 v2 執行 up
時,都會按需重建服務容器。但兩者使用不同的容器命名規則,導致 v1 啟動的容器在首次使用 v2 時會重建(獲得新名稱)。
即使使用
--compatibility
標志保留 v1 命名風格,首次遷移時仍需重建容器以更新內部狀態。
???? Docker-in-Docker 場景的使用
Compose v2 現已包含在 Docker 官方鏡像中。
另提供專用鏡像 docker/compose-bin 用于多階段構建。
能否繼續使用 Compose v1?
可以,但存在風險:
- 仍可下載安裝 v1 包,但 Docker 不再提供支持
- 最終版本 v1.29.2 發布于 2021 年 5 月 10 日,此后無安全更新
資源參考
- PyPI 上的 docker-compose v1
- Docker Hub 上的 docker/compose v1
- GitHub 上的 v1 源碼
關鍵遷移建議:
- 生產環境優先采用 Docker Desktop 或倉庫安裝的 v2
- 批量替換腳本中的
docker-compose
為docker compose
- 使用
docker compose config
驗證環境變量插值 - 復雜項目首次遷移時添加
--compatibility
標志過渡 - 避免繼續使用已停止維護的 v1 版本
5?? 參考 5 [github 的 docker compose 的 README.md 翻譯 ]
github 的 docker compose 的 README.md 原文
Table of Contents
- Docker Compose v2
- Where to get Docker Compose
- Windows and macOS
- Linux
- Quick Start
- Contributing
- Legacy
Docker Compose v2
Docker Compose is a tool for running multi-container applications on Docker
defined using the Compose file format.
A Compose file is used to define how one or more containers that make up
your application are configured.
Once you have a Compose file, you can create and start your application with a
single command: docker compose up
.
Note: About Docker Swarm
Docker Swarm used to rely on the legacy compose file format but did not adopted the compose specification
so is missing some of the recent enhancements in the compose syntax. After
acquisition by Mirantis swarm isn’t maintained by Docker Inc, and
as such some Docker Compose features aren’t accessible to swarm users.
Where to get Docker Compose
???????? Windows and macOS
Docker Compose is included in
Docker Desktop
for Windows and macOS.
???????? Linux
You can download Docker Compose binaries from the
release page on this repository.
Rename the relevant binary for your OS to docker-compose
and copy it to $HOME/.docker/cli-plugins
Or copy it into one of these folders to install it system-wide:
/usr/local/lib/docker/cli-plugins
OR/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
OR/usr/libexec/docker/cli-plugins
(might require making the downloaded file executable with chmod +x
)
Quick Start
Using Docker Compose is a three-step process:
- Define your app’s environment with a
Dockerfile
so it can be
reproduced anywhere. - Define the services that make up your app in
compose.yaml
so
they can be run together in an isolated environment. - Lastly, run
docker compose up
and Compose will start and run your entire
app.
A Compose file looks like this:
services:web:build: .ports:- "5000:5000"volumes:- .:/coderedis:image: redis
Contributing
Want to help develop Docker Compose? Check out our
contributing documentation.
If you find an issue, please report it on the
issue tracker.
Legacy
The Python version of Compose is available under the v1
branch.
github 的 docker compose 的 README.md 翻譯
Docker Compose v2 中文文檔
目錄
- Docker Compose v2
- 獲取 Docker Compose
- Windows 和 macOS
- Linux
- 快速入門
- 參與貢獻
- 舊版支持
Docker Compose v2
Docker Compose 是基于 Compose 文件格式 運行多容器應用的工具。通過 Compose 文件定義應用的容器配置后,只需一條命令即可啟動完整應用:
docker compose up
注意:關于 Docker Swarm
Docker Swarm 曾依賴舊版 Compose 格式,但未采用 Compose 規范,因此缺少最新語法特性。
自 Mirantis 收購 后,Swarm 不再由 Docker 公司維護,部分 Compose 功能對 Swarm 用戶不可用。
獲取 Docker Compose
???? Windows 和 macOS
Docker Compose 已內置在 Docker Desktop 中。
???? Linux
- 從 發布頁面 下載二進制文件
- 重命名為
docker-compose
并復制到以下目錄:- 用戶級:
$HOME/.docker/cli-plugins
- 系統級:
/usr/local/lib/docker/cli-plugins
或/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
或/usr/libexec/docker/cli-plugins
- 用戶級:
- 添加執行權限:
chmod +x /目標路徑/docker-compose
快速入門
只需三步即可運行應用:
- 定義環境:用
Dockerfile
確保環境可移植 - 配置服務:在
compose.yaml
中定義應用服務 - 一鍵啟動:執行
docker compose up
???? 示例 compose.yaml
services: web: build: . # 構建當前目錄鏡像 ports: - "5000:5000" # 端口映射 volumes: - .:/code # 實時同步代碼 redis: image: redis # 使用官方 Redis 鏡像
參與貢獻
- 參與開發?查看 貢獻指南
- 發現問題?提交至 問題跟蹤系統
舊版支持
Python 編寫的 Compose v1 可在 v1 分支 獲取(已停止更新)。
github 的 docker compose 的 README.md 翻譯 2
???? Docker Compose v2 文檔
目錄
- Docker Compose v2
- 獲取 Docker Compose
- Windows 與 macOS
- Linux
- 快速入門
- 參與貢獻
- 舊版說明
???? Docker Compose v2
Docker Compose 是基于 Compose 文件格式 在 Docker 上運行多容器應用的工具。
通過 Compose 文件定義應用的容器配置,只需一條命令即可啟動整個應用:
docker compose up
注意:關于 Docker Swarm
Docker Swarm 曾依賴舊版 Compose 文件格式,但未采用 Compose 規范,因此缺失新語法特性。
自 Mirantis 收購 后,Swarm 已非 Docker 官方維護,部分功能對 Swarm 用戶不可用。
???? 獲取 Docker Compose
???????? Windows 與 macOS
Docker Compose 已包含在 Docker Desktop 中,安裝即用。
???????? Linux
從 發布頁面 下載二進制文件:
- 重命名為
docker-compose
- 復制到以下目錄:
- 用戶級:
$HOME/.docker/cli-plugins
- 系統級:
/usr/local/lib/docker/cli-plugins
或/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
或/usr/libexec/docker/cli-plugins
(可能需要執行chmod +x
添加可執行權限)
- 用戶級:
???? 快速入門
三步啟動應用:
- 定義環境:用
Dockerfile
確保環境可復現 - 配置服務:在
compose.yaml
中定義應用服務 - 啟動應用:執行
docker compose up
示例 compose.yaml
:
services:web:build: . # 構建當前目錄鏡像ports:- "5000:5000" # 端口映射volumes:- .:/code # 目錄掛載redis:image: redis # 使用官方鏡像
???? 參與貢獻
參與開發?查閱 貢獻指南。
發現問題?提交至 問題跟蹤器。
???? 舊版說明
Python 版 Compose 請訪問 v1
分支。
???? 關鍵術語對照
英文術語 | 中文翻譯 |
---|---|
multi-container | 多容器 |
Compose file format | Compose 文件格式 |
isolated environment | 隔離環境 |
legacy compose format | 舊版 Compose 格式 |
cli-plugins | CLI 插件目錄 |
github 的 docker compose 的 README.md 翻譯 3
以下是 Docker Compose v2 文檔的專業中文翻譯:
目錄
- Docker Compose v2
- 獲取 Docker Compose
- Windows 和 macOS
- Linux
- 快速入門
- 貢獻指南
- 舊版說明
Docker Compose v2
Docker Compose 是基于 Compose 文件格式規范 運行多容器應用的工具。
通過 Compose 文件定義組成應用的容器配置后,只需單條命令即可創建和啟動應用:
docker compose up
注意:關于 Docker Swarm
Docker Swarm 曾依賴舊版 Compose 文件格式,但未采用 Compose 規范,因此缺少近期語法增強功能。
自 Mirantis 收購 后,Swarm 不再由 Docker Inc 維護,
部分 Docker Compose 功能對 Swarm 用戶不可用。
獲取 Docker Compose
???????? Windows 和 macOS
Docker Compose 已集成在 Docker Desktop 中。
???????? Linux
從 GitHub 發布頁面 下載二進制文件:
- 將文件重命名為
docker-compose
- 復制到
$HOME/.docker/cli-plugins
(當前用戶)
或 復制到以下系統級目錄(全局安裝):
/usr/local/lib/docker/cli-plugins
或/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
或/usr/libexec/docker/cli-plugins
(可能需要執行
chmod +x
賦予可執行權限)
快速入門
使用 Docker Compose 只需三步:
- 用
Dockerfile
定義應用環境,確保可跨環境復現 - 在
compose.yaml
中定義組成應用的各個服務 - 運行
docker compose up
啟動完整應用
示例 compose.yaml
:
services:web: # Web 服務build: . # 構建當前目錄鏡像ports:- "5000:5000" # 端口映射volumes:- .:/code # 目錄掛載redis: # Redis 服務image: redis # 使用官方鏡像
貢獻指南
歡迎參與 Docker Compose 開發!請查閱
貢獻文檔。
發現問題?請在 問題跟蹤器 提交報告。
舊版說明
Python 版 Compose 位于 v1
分支。
關鍵術語說明:
- Compose 文件格式:定義多容器應用的標準化規范
- CLI 插件:Docker Compose v2 以插件形式集成到 Docker CLI
- 系統級安裝:需管理員權限的全局安裝方式
- 服務容器:Compose 中每個獨立運行的應用組件
- 卷掛載:
volumes
實現宿主機與容器間數據持久化
github 的 docker compose 的 README.md 翻譯 4
???? Docker Compose v2 中文文檔
???????? 目錄
- Docker Compose v2
- 獲取 Docker Compose
- Windows 和 macOS
- Linux
- 快速入門
- 參與貢獻
- 舊版說明
Docker Compose 是通過 Compose 文件格式 定義并運行多容器 Docker 應用的工具。
使用 Compose 文件定義應用的容器配置后,只需一條命令即可創建并啟動整個應用:
docker compose up
注意:關于 Docker Swarm
Docker Swarm 曾依賴舊版 Compose 格式,但未采用 Compose 規范,因此缺少最新語法增強功能。
自 Mirantis 收購 后,Swarm 不再由 Docker Inc 維護,部分 Compose 功能對 Swarm 用戶不可用。
???? 獲取 Docker Compose
???????? Windows 和 macOS
Docker Compose 已包含在 Docker Desktop 中。
???????? Linux
- 從 發布頁面 下載二進制文件
- 將文件重命名為
docker-compose
- 復制到用戶目錄:
或 復制到以下路徑全局安裝:cp docker-compose $HOME/.docker/cli-plugins/
# 系統級路徑 (需 sudo) /usr/local/lib/docker/cli-plugins /usr/local/libexec/docker/cli-plugins /usr/lib/docker/cli-plugins /usr/libexec/docker/cli-plugins# 授予執行權限 sudo chmod +x /安裝路徑/docker-compose
- 定義環境
用Dockerfile
確保環境可復現 - 定義服務
在compose.yaml
中聲明應用服務組件 - 啟動應用
docker compose up
示例 compose.yaml:
services:web: # Web服務build: . # 構建當前目錄鏡像ports:- "5000:5000" # 端口映射volumes:- .:/code # 掛載代碼目錄redis: # Redis服務image: redis # 使用官方鏡像
- 貢獻指南
- 提交問題報告
???? 舊版說明
Python 編寫的 Compose v1 版本位于 v1
分支。
github 的 docker compose 的 README.md 翻譯 5
好的,這是 Docker Compose v2 文檔的簡體中文翻譯:
目錄
- Docker Compose v2
- 獲取 Docker Compose
- Windows 和 macOS
- Linux
- 快速入門
- 貢獻
- 舊版
Docker Compose v2
Docker Compose 是一個用于在 Docker 上運行多容器應用的工具,它使用 Compose 文件格式進行定義。
Compose 文件用于定義組成應用程序的一個或多個容器的配置方式。
一旦擁有 Compose 文件,您只需一個命令即可創建并啟動應用程序:docker compose up
。
重要提示:關于 Docker Swarm
Docker Swarm 曾依賴舊版 Compose 文件格式,但未采用 Compose 規范,因此缺少一些最新的 Compose 語法增強功能。
在 被 Mirantis 收購 后,Swarm 不再由 Docker Inc 維護,因此 Swarm 用戶無法使用某些 Docker Compose 功能。
獲取 Docker Compose
???????? Windows 和 macOS
Docker Compose 已包含在 Windows 和 macOS 版的 Docker Desktop 中。
???????? Linux
您可以從本倉庫的 發布頁面 下載 Docker Compose 二進制文件。
安裝步驟:
- 將適合您操作系統的二進制文件重命名為
docker-compose
- 將其復制到以下目錄之一:
- 當前用戶專用:
$HOME/.docker/cli-plugins
- 系統全局安裝:
/usr/local/lib/docker/cli-plugins
或/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
或/usr/libexec/docker/cli-plugins
💡 可能需要使用
chmod +x
命令賦予文件可執行權限 - 當前用戶專用:
快速入門
使用 Docker Compose 只需三步:
- 定義應用環境:使用
Dockerfile
定義您的應用程序環境,使其可在任何地方重現 - 定義服務:在
compose.yaml
中定義組成應用程序的服務,使其可在隔離環境中協同運行 - 啟動應用:運行
docker compose up
,Compose 將啟動并運行整個應用
示例 Compose 文件 (compose.yaml
):
services:web:build: . # 從當前目錄構建鏡像ports:- "5000:5000" # 映射端口 5000volumes:- .:/code # 掛載當前目錄到容器內的 /coderedis:image: redis # 使用官方 Redis 鏡像
貢獻
想要幫助開發 Docker Compose?請查閱我們的貢獻指南。
如果您發現問題,請在問題跟蹤器上報告。
舊版
基于 Python 的 Compose 版本可在 v1
分支 下獲取。
???????? 關鍵術語對照:
- Compose file format → Compose 文件格式
- CLI plugins → CLI 插件
- multi-container applications → 多容器應用
- isolated environment → 隔離環境
- issue tracker → 問題跟蹤器
- legacy compose → 舊版 Compose
注:保留所有技術名詞原格式(如
docker compose up
),鏈接和代碼塊保持原樣不變。
github 的 docker compose 的 README.md 翻譯 6
???? Docker Compose v2 文檔目錄
- Docker Compose v2
- 獲取 Docker Compose
- Windows 和 macOS
- Linux
- 快速入門
- 參與貢獻
- 舊版本
???? Docker Compose v2
Docker Compose 是基于 Compose 文件格式 運行多容器應用的工具。通過 Compose 文件定義應用容器配置后,只需執行一條命令即可啟動整個應用:
docker compose up
注意:關于 Docker Swarm
Docker Swarm 曾依賴舊版 Compose 文件格式,但未采用 Compose 規范,因此無法支持最新語法特性。自 Mirantis 收購 后,Swarm 已不再由 Docker 官方維護。
???? 獲取 Docker Compose
???????? Windows 和 macOS
直接安裝 Docker Desktop,其內置 Docker Compose。
???????? Linux
- 從 發布頁面 下載二進制文件
- 重命名為
docker-compose
并復制到以下目錄:- 用戶級:
$HOME/.docker/cli-plugins
- 系統級(需
chmod +x
添加執行權限):
/usr/local/lib/docker/cli-plugins
或/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
或/usr/libexec/docker/cli-plugins
- 用戶級:
???? 快速入門
只需三步:
- 定義環境:用
Dockerfile
創建可移植環境 - 配置服務:在
compose.yaml
中定義應用服務 - 啟動應用:執行
docker compose up
示例 compose.yaml
:
services:web:build: . # 構建當前目錄鏡像ports:- "5000:5000" # 端口映射volumes:- .:/code # 目錄掛載redis:image: redis # 使用官方鏡像
???? 參與貢獻
參與開發?查閱 貢獻指南。
發現問題?提交至 問題跟蹤器。
???? 舊版本
Python 編寫的 Compose v1 位于 v1 分支。
???? 翻譯要點說明:
-
技術術語處理
- “Compose file format” 譯為 “Compose 文件格式” 并保留規范鏈接
- “CLI-plugins” 保持英文(技術目錄名)
- “issue tracker” 譯為 “問題跟蹤器”(符合中文技術社區習慣)
-
動態元素保留
- 徽章(Badge)鏈接和版本號保持原功能
- 代碼塊和命令未翻譯(如
docker compose up
) - 路徑
/usr/local/lib/...
保留原始大小寫
-
復雜說明優化
- Swarm 維護狀態說明轉為清晰因果句式
- 舊版本分支標注開發語言(Python)特性
- YAML 注釋使用中文說明(如
# 構建當前目錄鏡像
)
-
交互元素增強
- 目錄層級使用中文符號(
●
→·
) - 關鍵步驟添加視覺符號(如 →)
- 注意事項使用醒目標識 > 注意
- 目錄層級使用中文符號(
6?? 參考 6 安裝 docker compose v2版 多個AI回答
安裝 docker compose v2版 回答1
Docker Compose v2 安裝指南
以下是最簡潔的 跨平臺安裝方案,支持 Linux/macOS/Windows(含 WSL):
???? 通用安裝命令
# 創建插件目錄
mkdir -p ~/.docker/cli-plugins# 下載最新版 V2 二進制文件
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o ~/.docker/cli-plugins/docker-compose# 添加執行權限
chmod +x ~/.docker/cli-plugins/docker-compose# 驗證安裝
docker compose version
? 成功輸出:Docker Compose version v2.x.x
系統專屬方案
???? Linux 系統
# 推薦:通過官方倉庫安裝(自動更新)
sudo apt-get update && sudo apt-get install docker-compose-plugin # Debian/Ubuntu
sudo yum update && sudo yum install docker-compose-plugin # CentOS/RHEL
???? macOS 系統
# Homebrew 安裝(首選)
brew install docker-compose# 或手動安裝
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-darwin-$(uname -m) -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
???? Windows 系統
- 安裝 Docker Desktop
- 勾選 Use Docker Compose V2(安裝時默認選中)
或在 PowerShell 中執行:
curl.exe -L https://github.com/docker/compose/releases/latest/download/docker-compose-windows-x86_64.exe -o $env:USERPROFILE\.docker\cli-plugins\docker-compose.exe
安裝驗證
# 創建測試項目
mkdir compose-test && cd compose-test
cat > compose.yaml <<EOF
services:test:image: alpine:latestcommand: echo "Docker Compose V2 安裝成功!"
EOF# 運行測試
docker compose up
🟢 成功輸出:Docker Compose V2 安裝成功!
關鍵說明
-
安裝位置:
- 用戶級:
~/.docker/cli-plugins/
- 系統級:
/usr/local/lib/docker/cli-plugins/
- 用戶級:
-
命令區別:
- ? 新版:
docker compose [命令]
- ? 舊版:
docker-compose [命令]
- ? 新版:
-
升級方法:
rm ~/.docker/cli-plugins/docker-compose # 重新執行安裝命令
注意:
- 手動安裝需定期檢查 GitHub 發布頁 獲取更新
- 完整文檔:官方安裝指南
安裝 docker compose v2版 回答2
以下是安裝 Docker Compose v2 的完整指南,提供兩種推薦方法:
方法一:通過軟件倉庫安裝(推薦,支持自動更新)
# Ubuntu/Debian 系統
sudo apt-get update
sudo apt-get install docker-compose-plugin# CentOS/RHEL/Fedora 系統
sudo yum update
sudo yum install docker-compose-plugin
方法二:手動安裝(通用方法)
# 創建安裝目錄
mkdir -p ~/.docker/cli-plugins# 下載最新版(自動檢測架構)
ARCH=$(uname -m | sed 's/x86_64/x86_64/;s/aarch64/aarch64/;s/armv7l/armv7/')
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$ARCH -o ~/.docker/cli-plugins/docker-compose# 授予執行權限
chmod +x ~/.docker/cli-plugins/docker-compose
驗證安裝
docker compose version
# 成功安裝會顯示:Docker Compose version v2.x.x
系統級安裝(所有用戶可用)
# 下載到系統目錄
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m | sed 's/x86_64/x86_64/;s/aarch64/aarch64/') -o /usr/local/lib/docker/cli-plugins/docker-compose# 授予權限
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
安裝后測試
# 創建測試項目
mkdir compose-test && cd compose-test
echo 'services: test: image: alpine:latest command: echo "Compose v2 Installed!"' > compose.yaml# 運行測試
docker compose up
# 成功輸出會顯示:compose-test-test-1 exited with code 0
重要說明
- 先決條件:需先安裝 Docker Engine
- 架構支持:
- Intel/AMD CPU:使用
x86_64
- 蘋果 M 系列/樹莓派 4:使用
aarch64
- 舊款 ARM 設備:使用
armv7
- Intel/AMD CPU:使用
- 版本管理:
# 查看可用版本 curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name# 安裝特定版本(如 v2.24.7) curl -SL https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-$(uname -m) -o ~/.docker/cli-plugins/docker-compose
- 遷移舊版:
# 卸載舊版 v1 sudo apt remove docker-compose # Ubuntu/Debian sudo pip uninstall docker-compose # Pip安裝# 更新現有腳本 sed -i 's/docker-compose/docker compose/g' your_script.sh
提示:對于 Windows/macOS 用戶,安裝 Docker Desktop 即自動包含 Compose v2,無需單獨安裝。
安裝 docker compose v2版 回答3
安裝 Docker Compose V2 新版指南
???? 方法一:通過官方倉庫安裝(推薦)
# Ubuntu/Debian 系統
sudo apt update
sudo apt install docker-compose-plugin# CentOS/RHEL 系統
sudo yum update
sudo yum install docker-compose-plugin# 驗證安裝
docker compose version
# 應輸出:Docker Compose version v2.x.x
???? 方法二:手動安裝(適用于所有 Linux)
# 下載最新版(x86_64 架構)
DOCKER_DIR="${DOCKER_DIR:-$HOME/.docker}"
mkdir -p $DOCKER_DIR/cli-plugins
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o $DOCKER_DIR/cli-plugins/docker-compose# 授予執行權限
chmod +x $DOCKER_DIR/cli-plugins/docker-compose# 驗證安裝
docker compose version
???? 其他架構替換方案
架構類型 | 下載鏈接替換部分 |
---|---|
ARM64 (樹莓派) | linux-aarch64 |
Apple Silicon | darwin-aarch64 |
Intel Mac | darwin-x86_64 |
Windows | windows-x86_64.exe |
???? 系統級安裝(所有用戶可用)
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
配置命令別名(兼容舊版)
echo "alias docker-compose='docker compose'" >> ~/.bashrc
source ~/.bashrc
升級現有版本
# 倉庫安裝用戶
sudo apt update && sudo apt install docker-compose-plugin # Ubuntu/Debian
sudo yum update && sudo yum install docker-compose-plugin # CentOS/RHEL# 手動安裝用戶:重復下載步驟覆蓋舊文件
驗證安裝成功
docker compose version
# 輸出示例:
# Docker Compose version v2.24.5
注意事項
- 依賴要求:需先安裝 Docker Engine 20.10.10+
- 權限配置:將用戶加入 docker 組避免 sudo
sudo usermod -aG docker $USER newgrp docker # 立即生效
- 命令變化:
- V1 舊命令:
docker-compose up
- V2 新命令:
docker compose up
- V1 舊命令:
推薦使用倉庫安裝方式,可獲得自動安全更新。生產環境應使用最新穩定版,可通過 GitHub Releases 查看版本信息。
安裝 docker compose v2版 回答4
以下是安裝 Docker Compose V2 的完整指南,適用于各主流操作系統:
所有系統通用前提
- 確保已安裝最新版 Docker Engine
docker --version
若未安裝:官方 Docker 安裝指南
安裝方法(按操作系統選擇)
???? Linux 系統 (推薦倉庫安裝)
# 1. 添加 Docker 官方倉庫 (以 Ubuntu 為例)
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 2. 安裝 Docker Compose V2
sudo apt-get update
sudo apt-get install docker-compose-plugin# 3. 驗證安裝
docker compose version
# 應輸出:Docker Compose version v2.x.x
???? Windows/macOS 系統
- 下載并安裝最新版 Docker Desktop
- 安裝后直接使用:
docker compose version
???? 手動安裝(通用方法)
# 下載二進制文件 (替換版本號和架構)
DOCKER_COMPOSE_VERSION="v2.24.5" # 從 https://github.com/docker/compose/releases 獲取最新版
ARCH="x86_64" # 可選: aarch64, armv7, etc.# 安裝到當前用戶
mkdir -p ~/.docker/cli-plugins
curl -SL "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-${ARCH}" -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose# 驗證
docker compose version
關鍵注意事項
-
命令變化:
# V2 使用新語法 (無連字符) docker compose up -d # ? 正確 docker-compose up -d # ?? 舊版 V1 語法
-
卸載舊版 V1 (如已安裝):
# Linux sudo apt remove docker-compose sudo rm /usr/local/bin/docker-compose# macOS brew uninstall docker-compose
-
自動補全 (增強體驗):
# Linux bash 補全 sudo curl -L https://raw.githubusercontent.com/docker/compose/v2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
遷移項目到 V2
- 更新腳本:將所有
docker-compose
替換為docker compose
- 容器命名變更:
- V1:
project_service_1
- V2:
project-service-1
臨時兼容:使用
docker compose --compatibility up
保持舊命名 - V1:
驗證安裝成功
# 創建測試項目
mkdir compose-test && cd compose-test
echo 'services: nginx: image: nginx' > compose.yaml# 啟動服務
docker compose up -d# 檢查狀態
docker compose ps# 清理
docker compose down --rmi all
💡 提示:遇到權限問題請運行
sudo usermod -aG docker $USER
并重新登錄
通過上述步驟,您將在所有主流系統上完成 Docker Compose V2 的安裝和驗證。
安裝 docker compose v2版 回答5
以下是安裝 Docker Compose v2 的完整指南:
安裝 Docker Compose v2 的三種方法
???? 方法一:通過 Docker Desktop 安裝 (推薦)
# 1. 下載并安裝 Docker Desktop
https://www.docker.com/products/docker-desktop/# 2. 安裝后驗證
docker compose version
# 應輸出:Docker Compose version v2.x.x
? 適合:Windows/macOS 用戶
? 優勢:自動更新、一鍵安裝
???? 方法二:Linux 倉庫安裝 (Debian/Ubuntu)
# 1. 更新倉庫
sudo apt-get update# 2. 安裝插件
sudo apt-get install docker-compose-plugin# 3. 驗證安裝
docker compose version
???? 方法三:手動安裝 (所有 Linux 系統)
# 1. 創建插件目錄
mkdir -p ~/.docker/cli-plugins# 2. 下載二進制文件 (替換版本號)
curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-$(uname -m) -o ~/.docker/cli-plugins/docker-compose# 3. 添加執行權限
chmod +x ~/.docker/cli-plugins/docker-compose# 4. 驗證安裝
docker compose version
系統級安裝 (所有用戶可用)
# 1. 下載到系統目錄
sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose# 2. 添加執行權限
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
安裝驗證與測試
# 檢查版本
docker compose version# 創建測試項目
mkdir compose-test && cd compose-test
echo 'services: nginx: image: nginx' > compose.yaml# 啟動服務
docker compose up -d# 檢查狀態
docker compose ps
常見問題解決
-
權限錯誤
sudo usermod -aG docker $USER # 添加用戶到docker組 newgrp docker # 刷新組權限
-
架構不匹配
替換下載鏈接中的$(uname -m)
為實際架構:- x86_64 (Intel/AMD)
- aarch64 (ARM)
- ppc64le (PowerPC)
-
版本升級
# 手動安裝時重新下載新版本文件 curl -SL https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-$(uname -m) -o ~/.docker/cli-plugins/docker-compose
💡 提示:訪問 GitHub Releases 獲取最新版本號替換
v2.24.5
安裝 docker compose v2版 回答6
以下是安裝 Docker Compose v2 的完整指南:
安裝步驟(Linux 系統)
???? 方法一:通過軟件倉庫安裝(推薦,支持自動更新)
# 1. 更新系統包索引
sudo apt-get update # Ubuntu/Debian
# 或
sudo yum update # CentOS/RHEL# 2. 安裝 Docker Compose 插件
sudo apt-get install docker-compose-plugin # Ubuntu/Debian
# 或
sudo yum install docker-compose-plugin # CentOS/RHEL# 3. 驗證安裝
docker compose version
# 應輸出:Docker Compose version v2.x.x
???? 方法二:手動安裝(適合自定義需求)
# 1. 創建插件目錄
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins# 2. 下載最新版二進制文件(替換版本號)
# 查看最新版本:https://github.com/docker/compose/releases
COMPOSE_VERSION=v2.24.5 # 替換為最新版本
ARCH=$(uname -m) # 自動檢測架構curl -SL "https://github.com/docker/compose/releases/download/$COMPOSE_VERSION/docker-compose-linux-$ARCH" \-o $DOCKER_CONFIG/cli-plugins/docker-compose# 3. 賦予執行權限
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose# 4. 驗證安裝
docker compose version
Windows/macOS 用戶
Docker Compose v2 已包含在 Docker Desktop 中:
- 下載并安裝最新版 Docker Desktop
- 安裝后直接在終端使用:
docker compose version
安裝后配置
-
遷移舊版命令:
# 替換所有腳本中的舊命令 sed -i 's/docker-compose/docker compose/g' your-script.sh
-
啟用命令補全:
# Bash 用戶 docker completion bash > /etc/bash_completion.d/docker-compose source ~/.bashrc# Zsh 用戶 mkdir -p ~/.zsh/completion docker completion zsh > ~/.zsh/completion/_docker echo "fpath=(~/.zsh/completion \$fpath)" >> ~/.zshrc source ~/.zshrc
驗證安裝成功
# 創建測試項目
mkdir compose-test && cd compose-test# 創建示例 compose.yaml
cat > compose.yaml <<EOF
services:web:image: nginx:alpineports:- "8080:80"
EOF# 啟動服務
docker compose up -d# 檢查運行狀態
docker compose ps# 訪問測試
curl localhost:8080 # 應返回 Nginx 歡迎頁# 清理測試
docker compose down
常見問題解決
-
權限錯誤:
sudo chown $USER:$USER $HOME/.docker -R
-
命令未找到:
# 檢查插件路徑 echo $DOCKER_CONFIG ls -l $DOCKER_CONFIG/cli-plugins# 系統級安裝方案 sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo cp $HOME/.docker/cli-plugins/docker-compose /usr/local/lib/docker/cli-plugins/
-
版本過舊:
# 手動更新 rm ~/.docker/cli-plugins/docker-compose # 重新執行手動安裝步驟
重要提示:所有 v2 命令使用
docker compose
(帶空格),不再是 v1 的docker-compose
(帶連字符)
7?? 參考 7 四個系統目錄對比
/usr/local/lib/docker/cli-plugins
/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
/usr/libexec/docker/cli-plugins
對比
對比 1
???? Docker Compose V2 系統級安裝目錄對比
以下是對四個系統級安裝目錄的詳細對比分析:
目錄路徑 | 推薦度 | 適用場景 | 權限要求 | 特點 |
---|---|---|---|---|
/usr/local/lib/docker/cli-plugins | ★★★★★ | 首選推薦位置 | 需 sudo | 標準手動安裝目錄,與系統包隔離,最符合 Linux FHS 規范 |
/usr/local/libexec/docker/cli-plugins | ★★★★☆ | 替代方案 | 需 sudo | libexec 通常存放內部二進制文件,較少用作插件目錄 |
/usr/lib/docker/cli-plugins | ★★☆☆☆ | 包管理器安裝 | 需 sudo | 系統級庫目錄,易與包管理器沖突,不推薦手動安裝 |
/usr/libexec/docker/cli-plugins | ★★☆☆☆ | 特殊系統配置 | 需 sudo | 系統內部執行目錄,非常規插件位置,可能被系統更新覆蓋 |
???? 核心結論
-
首選目錄
?/usr/local/lib/docker/cli-plugins
- 理由:符合 Linux FHS 標準的第三方軟件位置
- 示例命令:
sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
備選目錄
??/usr/local/libexec/docker/cli-plugins
- 僅當 主目錄不可用時作為替代方案
-
避免使用的目錄
?/usr/lib/docker/cli-plugins
和/usr/libexec/docker/cli-plugins
- 風險:
- 可能被系統包管理器(apt/yum)覆蓋
- 與 Docker 官方安裝包沖突
- 違反 Linux 目錄規范
- 風險:
???? 最佳實踐建議
# 1. 創建推薦目錄
sudo mkdir -p /usr/local/lib/docker/cli-plugins# 2. 下載 Compose V2
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) \-o /usr/local/lib/docker/cli-plugins/docker-compose# 3. 添加執行權限
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose# 4. 驗證安裝
docker compose version
關鍵說明:
- 使用
/usr/local/
目錄可確保:
- 手動安裝與系統包隔離
- 避免未來 Docker 升級沖突
- 符合 Linux 系統管理規范
- 通過
which docker-compose
檢查是否存在舊版沖突文件
對比 2
以下是四個 Docker Compose 系統級安裝目錄的詳細對比分析:
目錄路徑 | 用途定位 | 適用場景 | 優先級 | 系統標準 |
---|---|---|---|---|
/usr/local/lib/docker/cli-plugins | 用戶級本地安裝目錄 | 手動安裝首選位置,避免與系統包沖突 | 最高 | 符合 FHS 標準 |
/usr/local/libexec/docker/cli-plugins | 本地執行目錄(libexec 變體) | 備用安裝位置 | 中 | 符合 FHS 標準 |
/usr/lib/docker/cli-plugins | 系統級庫目錄 | 包管理器(apt/yum)自動安裝位置 | 低 | 符合 FHS 標準 |
/usr/libexec/docker/cli-plugins | 系統執行目錄(libexec 變體) | 較少使用 | 最低 | 部分發行版特有 |
???? 關鍵差異詳解
-
路徑層級差異
/usr/local/
前綴:用戶手動安裝位置(避免覆蓋系統文件)/usr/
前綴:系統級安裝位置(包管理器默認使用)
-
目錄類型差異
lib
:標準庫目錄(存放共享庫和插件)libexec
:內部執行目錄(存放不直接執行的輔助程序)
-
實際使用建議
# 最佳實踐:優先使用標準庫目錄 sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-$(uname -m) \-o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
優先級驗證
Docker 按以下順序查找插件:1. ~/.docker/cli-plugins # 用戶級目錄(最高優先級) 2. /usr/local/lib/docker/cli-plugins 3. /usr/local/libexec/docker/cli-plugins 4. /usr/lib/docker/cli-plugins 5. /usr/libexec/docker/cli-plugins # 系統級目錄(最低優先級)
???? 特殊場景說明
- 容器環境:在 Docker-in-Docker 場景中,建議使用
/usr/local/lib/docker/cli-plugins
- 多架構系統:ARM 設備(如樹莓派)優先使用
/usr/local/
目錄 - 安全加固系統:SELinux 環境下,
/usr/libexec/
可能有特殊權限策略
歷史背景:
libexec
目錄源于 Unix 傳統,用于存放不應被用戶直接執行的內部二進制文件,現代 Linux 系統中逐漸被lib
目錄替代。Docker 保留這些路徑主要為兼容舊系統。
對比 3
以下是針對四個 Docker CLI 插件目錄的詳細對比分析:
目錄路徑 | 系統定位 | 適用場景 | 權限要求 | 優先級 | 兼容性 |
---|---|---|---|---|---|
/usr/local/lib/docker/cli-plugins | 用戶級安裝目錄 | 手動安裝時首選位置 | 需 sudo 權限 | ★★★★☆ | 所有 Linux 發行版 |
/usr/local/libexec/docker/cli-plugins | 系統級執行目錄 | 特殊系統環境(較少使用) | 需 sudo 權限 | ★★☆☆☆ | BSD 系系統更常見 |
/usr/lib/docker/cli-plugins | 系統級庫目錄 | 包管理器安裝(apt/yum/dnf) | 包管理器自動處理 | ★★★☆☆ | 主流 Linux 發行版 |
/usr/libexec/docker/cli-plugins | 系統級執行目錄 | 特殊包管理場景(如 RPM 特定安裝) | 包管理器自動處理 | ★★☆☆☆ | RHEL/CentOS/Fedora |
???? 關鍵差異解析
-
路徑含義差異:
lib
:通用庫目錄(推薦)libexec
:內部執行目錄(專用場景)
-
安裝方式區別:
# 手動安裝首選(用戶級) sudo install docker-compose /usr/local/lib/docker/cli-plugins/# 包管理器安裝(系統級) sudo apt install docker-compose-plugin # 自動安裝到 /usr/lib/...
-
Docker 識別優先級:
當存在多個安裝時,Docker 按此順序識別:1. ~/.docker/cli-plugins/ (用戶目錄) 2. /usr/local/lib/docker/cli-plugins/ 3. /usr/lib/docker/cli-plugins/ 4. /usr/local/libexec/... 和 /usr/libexec/... (最后檢查)
-
最佳實踐:
- 個人開發環境:使用
~/.docker/cli-plugins
(無需 sudo) - 多用戶系統:
/usr/local/lib/docker/cli-plugins
- 生產服務器:通過包管理器安裝到
/usr/lib/...
- 個人開發環境:使用
???? 驗證路徑配置
# 檢查 Docker 搜索路徑
docker info --format '{{range .ClientInfo.Plugins}}{{.Path}}{{"\n"}}{{end}}'# 典型輸出示例:
/home/user/.docker/cli-plugins
/usr/local/lib/docker/cli-plugins
/usr/lib/docker/cli-plugins
???? 故障排查技巧
若命令無法識別:
# 檢查所有候選路徑
ls -d /usr/local/lib*/docker/cli-plugins \/usr/lib*/docker/cli-plugins \~/.docker/cli-plugins 2>/dev/null# 臨時添加測試路徑
export DOCKER_CLI_PLUGINS_PATH="/custom/path:$DOCKER_CLI_PLUGINS_PATH"
重要提示:Docker v20.10+ 默認支持該插件架構,舊版本需升級 Docker Engine 才能使用
docker compose
命令。
對比 4
???? Docker CLI 插件目錄對比分析
???????? 目錄結構對比
目錄路徑 | 用途說明 | 權限要求 | 適用場景 |
---|---|---|---|
/usr/local/lib/docker/cli-plugins | 用戶級全局安裝:手動安裝的插件 | 需要 sudo | 開發環境、單用戶系統 |
/usr/local/libexec/docker/cli-plugins | 系統內部執行:供 Docker 內部調用的插件 | 需要 sudo | 高級用戶、特殊配置 |
/usr/lib/docker/cli-plugins | 系統級全局安裝:包管理器安裝的插件 | 需要 sudo | 生產環境、多用戶系統 |
/usr/libexec/docker/cli-plugins | 系統內部執行:Docker 守護進程使用的內部插件 | 需要 sudo | Docker 系統級擴展 |
???? 關鍵區別解析
-
安裝位置層級:
/usr/local/
:用戶手動安裝位置(獨立于系統包管理器)/usr/lib/
:系統包管理器安裝位置(如 apt/yum)
-
功能定位:
lib/
:存放可直接調用的插件(如docker-compose
)libexec/
:存放供 Docker 內部調用的輔助程序
-
權限管理:
# 查看目錄權限 ls -ld /usr/*/docker/cli-plugins
典型輸出:
drwxr-xr-x 2 root root 4096 Jul 31 10:00 /usr/lib/docker/cli-plugins drwxr-xr-x 2 root root 4096 Jul 31 10:00 /usr/libexec/docker/cli-plugins
???? 安裝建議
???????? 推薦方案
-
個人開發環境 → 用戶目錄安裝
mkdir -p ~/.docker/cli-plugins curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose
-
生產服務器 → 系統級安裝
sudo mkdir -p /usr/lib/docker/cli-plugins sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/lib/docker/cli-plugins/docker-compose
???????? 驗證安裝
# 檢查插件加載路徑
docker info --format '{{.ClientInfo.PluginsPath}}'# 查看已加載插件
docker compose version
最佳實踐:
- 優先使用
/usr/lib/docker/cli-plugins
(兼容系統更新)- 避免使用
libexec
目錄(保留給 Docker 內部使用)- 多用戶環境需設置權限:
sudo chmod 755 /usr/lib/docker/cli-plugins/docker-compose
對比 5
以下是四個 Docker CLI 插件目錄的詳細對比分析:
目錄路徑 | 系統級別 | 典型用途 | 包管理器關聯 | 權限要求 | 推薦場景 |
---|---|---|---|---|---|
/usr/local/lib/docker/cli-plugins | 系統全局 | 管理員手動安裝的插件 | ? 無關 | 需要 sudo 權限 | 手動安裝插件(推薦位置) |
/usr/local/libexec/docker/cli-plugins | 系統全局 | 系統內部使用的執行文件 | ? 無關 | 需要 sudo 權限 | 特殊系統配置(較少使用) |
/usr/lib/docker/cli-plugins | 系統全局 | 包管理器安裝的插件 | ? 關聯 | 由包管理器管理 | 通過 apt/yum 等包管理器安裝 |
/usr/libexec/docker/cli-plugins | 系統全局 | 其他程序調用的后臺執行文件 | ? 關聯 | 由包管理器管理 | Docker 系統級后臺插件 |
$HOME/.docker/cli-plugins | 用戶級 | 當前用戶專用插件 | ? 無關 | 用戶權限即可 | 單用戶測試/無 root 權限環境 |
???? 關鍵區別說明:
-
/usr/local/
vs/usr/
/usr/local/
:用于手動安裝的軟件(不受系統包管理器影響)/usr/
:用于包管理器安裝的軟件(apt/yum/dnf 等)
-
lib
vslibexec
lib
:存放可直接調用的庫文件和插件libexec
:存放其他程序內部調用的執行文件(通常用戶不直接運行)
-
權限要求
# 手動安裝到系統目錄需要 sudo sudo curl -SL ... -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose# 用戶目錄不需要特權 curl -SL ... -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose
-
加載優先級(從高到低):
$HOME/.docker/cli-plugins
(用戶級)/usr/local/lib/docker/cli-plugins
/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
/usr/libexec/docker/cli-plugins
???? 使用建議:
-
生產環境:
# 推薦使用包管理器安裝(自動維護) sudo apt install docker-compose-plugin # Debian/Ubuntu sudo yum install docker-compose-plugin # CentOS/RHEL
這將安裝到
/usr/lib/docker/cli-plugins/
-
手動安裝:
# 首選位置(兼容性最好) sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
多用戶環境:
# 避免使用 libexec 目錄 # 可能因系統配置不同導致插件不可見
💡 診斷技巧:檢查 Docker 識別的插件路徑
docker info --format '{{range .ClientInfo.Plugins}}{{.Path}}{{"\n"}}{{end}}'
對比 6
以下是四個 Docker CLI 插件目錄的對比分析,幫助您理解它們的區別和適用場景:
???? 目錄對比表
目錄路徑 | 優先級 | 適用場景 | 權限要求 | 典型用途 |
---|---|---|---|---|
/usr/local/lib/docker/cli-plugins | 高 | 系統級安裝(推薦) | sudo | 管理員手動安裝的全局插件 |
/usr/local/libexec/docker/cli-plugins | 中 | 系統級安裝(備選) | sudo | 兼容舊版系統的全局插件 |
/usr/lib/docker/cli-plugins | 中低 | 發行版包管理器安裝 | root | 通過 apt/yum 安裝的官方插件 |
/usr/libexec/docker/cli-plugins | 低 | 系統內部使用 | root | Docker 內部組件 |
???? 關鍵區別詳解
-
安裝優先級
Docker 按以下順序查找插件:~/.docker/cli-plugins > /usr/local/lib/docker/cli-plugins > 其他系統目錄
用戶目錄優先級最高,
/usr/local/lib/
是系統級首選 -
權限要求
usr/local/
開頭的目錄:通常需要sudo
權限usr/lib/
開頭的目錄:嚴格需要root
權限- 用戶目錄
~/.docker/
:普通用戶權限即可
-
最佳實踐建議
# 推薦安裝路徑(所有用戶可用) sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -L https://.../docker-compose -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose# 驗證安裝 docker compose version
-
目錄用途差異
目錄類型 說明 lib/ 存放運行時庫文件(推薦手動安裝位置) libexec/ 存放系統內部執行文件(通常供后臺進程使用) /usr/lib/ 發行版維護的軟件包目錄(避免手動修改) ~/.docker/ 用戶級配置目錄(單用戶隔離安裝)
???? 故障排查技巧
若遇到命令未找到:
# 檢查插件搜索路徑
docker info --format '{{range .ClientInfo.Plugins}}{{.Path}}{{"\n"}}{{end}}'# 臨時添加新路徑
export DOCKER_CLI_PLUGINS_PATH="/custom/plugins:$DOCKER_CLI_PLUGINS_PATH"
💡 提示:現代 Docker 版本(v20.10+)優先使用
/usr/local/lib/docker/cli-plugins
,這是最推薦的安裝位置。
對比 7
在 Docker 中,CLI 插件可以存放在多個目錄中,不同的目錄對應不同的使用場景和優先級。以下是這些目錄的對比和說明:
???? 1. /usr/local/lib/docker/cli-plugins
- 作用:存放用戶或第三方手動安裝的 CLI 插件(非系統級)。
- 優先級:較高(Docker 按目錄優先級搜索插件,找到即停止)。
- 適用場景:
- 手動安裝的插件(例如從 GitHub 下載的二進制文件)。
- 多用戶系統下希望全局可用的插件。
- 權限:通常需要
sudo
寫入權限。
???? 2. /usr/local/libexec/docker/cli-plugins
- 作用:類似
/usr/local/lib
,但用于存放僅供其他程序調用的插件。 - 優先級:與
/usr/local/lib
相同(但 Docker 不一定默認支持此路徑,需檢查文檔或系統配置)。 - 適用場景:
- 腳本或其他工具依賴的插件。
- 需與其他系統工具共享的插件。
- 注意:
libexec
通常用于存放不直接暴露給用戶的二進制文件。
???? 3. /usr/lib/docker/cli-plugins
- 作用:系統級插件目錄,通常由包管理器(如
apt
、yum
)安裝的插件存放于此。 - 優先級:中等(低于
/usr/local/lib
)。 - 適用場景:
- 通過系統包管理安裝的 Docker 插件(例如
docker-buildx
)。 - 需要與 Docker 系統版本保持兼容的插件。
- 通過系統包管理安裝的 Docker 插件(例如
- 權限:通常由包管理器自動管理,用戶無需手動修改。
???? 4. /usr/libexec/docker/cli-plugins
- 作用:與
/usr/lib/docker
類似,但用于存放系統內部使用的插件。 - 優先級:與
/usr/lib
相同(可能低)。 - 適用場景:
- Docker 自身依賴的插件或工具(如 Docker Engine 內置功能)。
- 避免與用戶安裝的插件沖突的系統級插件。
???? 對比總結
目錄 | 用戶場景 | 優先級 | 管理方式 | 典型使用 |
---|---|---|---|---|
/usr/local/lib/docker/cli-plugins | 用戶手動安裝插件 | 最高 | 手動管理 | 自定義插件、開發測試 |
/usr/local/libexec/docker/cli-plugins | 共享插件(需腳本調用) | 中等 | 手動或工具管理 | 自動化工具依賴的插件 |
/usr/lib/docker/cli-plugins | 系統包管理器安裝的插件 | 中等 | 包管理器自動管理 | 官方或倉庫提供的插件(如 docker-buildx ) |
/usr/libexec/docker/cli-plugins | Docker 內部或系統級插件 | 最低 | Docker 或系統管理 | 引擎依賴的內部插件 |
???? 優先級順序
默認情況下,Docker 會按以下順序搜索插件目錄(可能因系統配置略有差異):
~/.docker/cli-plugins
(用戶目錄,未列出但優先級最高)/usr/local/lib/docker/cli-plugins
/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
/usr/libexec/docker/cli-plugins
???? 建議
- 用戶自定義插件:優先放在
/usr/local/lib/docker/cli-plugins
或用戶目錄~/.docker/cli-plugins
。 - 系統級插件:通過包管理器安裝到
/usr/lib/docker/cli-plugins
。 - 調試插件沖突:檢查插件路徑優先級,確保高優先級目錄中無同名插件。
如果需要更詳細的操作系統差異或配置調整,可以提供更多上下文。
8?? 參考 8 五個目錄的優先級對比
~/.docker/cli-plugins
($HOME/.docker/cli-plugins
)/usr/local/lib/docker/cli-plugins
/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
/usr/libexec/docker/cli-plugins
優先級對比
優先級對比 1
Docker Compose V2 安裝目錄優先級對比
以下是按 優先級從高到低 的目錄排序(基于 Docker CLI 的插件加載規則):
優先級 | 目錄路徑 | 適用場景 | 特點說明 |
---|---|---|---|
1 | ~/.docker/cli-plugins 或 $HOME/.docker/cli-plugins | 用戶級安裝(推薦) | ? 優先級最高 ? 僅對當前用戶有效 🔧 無需 root 權限 |
2 | /usr/local/lib/docker/cli-plugins | 系統級安裝(首選) | ? 符合 FHS 標準 🛡? 與系統包隔離 💻 對所有用戶有效 |
3 | /usr/local/libexec/docker/cli-plugins | 備選系統目錄 | ?? 非常規位置 📦 可能被誤清理 🔍 較少使用 |
4 | /usr/lib/docker/cli-plugins | 包管理器專用目錄 | ?? 易與 apt/yum 沖突 🔄 可能被系統更新覆蓋 ?? 不推薦手動安裝 |
5 | /usr/libexec/docker/cli-plugins | 系統內部目錄 | 🚫 最低優先級 🧩 通常存放守護進程 ?? 強烈不建議使用 |
關鍵結論
-
最高優先級:用戶目錄 (
~/.docker/cli-plugins
) ($HOME/.docker/cli-plugins
)- 優勢:無需 sudo,獨立配置
- 命令示例:
mkdir -p ~/.docker/cli-plugins curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose
-
最佳系統目錄:
/usr/local/lib/docker/cli-plugins
- 推薦場景:多用戶系統/生產環境
- 安裝示范:
sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
避坑指南:
- ? 避免使用
/usr/lib/
和/usr/libexec/
開頭的目錄- 易導致與包管理器沖突(如 apt 安裝的 Docker)
- 可能被系統更新意外覆蓋
- 🔍 檢查現有安裝:
# 查看 Compose 實際加載路徑 docker compose version --short
- ? 避免使用
優先級驗證原理:
Docker CLI 按以下順序掃描插件目錄:
$HOME/.docker/cli-plugins
- 全局自定義目錄(如
/usr/local/lib/docker/cli-plugins
)- Docker 內置目錄(如
/usr/lib/docker/cli-plugins
)
找到第一個有效插件后立即停止搜索
優先級對比 2
以下是 Docker Compose CLI 插件搜索路徑的優先級詳細對比分析,按優先級從高到低排序:
???? 優先級排序(1 → 5 優先級遞減)
優先級 | 路徑 | 搜索順序 | 適用場景 | 權限要求 |
---|---|---|---|---|
1 | ~/.docker/cli-plugins 或 $HOME/.docker/cli-plugins | 最先 | 用戶級安裝 ? 無需 root 權限 ? 僅影響當前用戶 | 用戶級權限 |
2 | /usr/local/lib/docker/cli-plugins | 次之 | 系統級手動安裝首選 ? 全局可用 ? 不干擾系統包管理 | 需 sudo 權限 |
3 | /usr/local/libexec/docker/cli-plugins | 第三 | 備選系統路徑 ? 較少使用 ? 兼容舊系統 | 需 sudo 權限 |
4 | /usr/lib/docker/cli-plugins | 第四 | 包管理器默認路徑 ? apt/yum 安裝位置 ? 可能被系統更新覆蓋 | 包管理器管理 |
5 | /usr/libexec/docker/cli-plugins | 最后 | 特殊系統路徑 ? 極少使用 ? 某些發行版保留目錄 | 需 sudo 權限 |
???? 關鍵特性對比
特性 | ~/.docker | /usr/local/lib | /usr/local/libexec | /usr/lib | /usr/libexec |
---|---|---|---|---|---|
多用戶隔離 | ? 獨立 | ? 全局 | ? 全局 | ? 全局 | ? 全局 |
系統更新安全性 | ? 不受影響 | ? 不受影響 | ? 不受影響 | ?? 可能被覆蓋 | ? 不受影響 |
容器環境兼容性 | ? 最佳 | ? 良好 | ?? 一般 | ?? 可能有沖突 | ? 差 |
權限要求 | 用戶級 | sudo | sudo | 包管理器 | sudo |
版本控制靈活性 | ? 可自由切換 | ? 可自由切換 | ? 可自由切換 | ? 依賴包管理 | ? 可自由切換 |
???? 實際使用場景推薦
-
開發環境首選 →
~/.docker/cli-plugins
# 無需sudo,安全隔離 mkdir -p ~/.docker/cli-plugins curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) \-o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose
-
生產環境推薦 →
/usr/local/lib/docker/cli-plugins
# 全局可用,避免用戶隔離問題 sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL [下載鏈接] -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
應避免的路徑 →
/usr/lib*/docker/cli-plugins
- 易與包管理器沖突
- 可能被系統更新意外覆蓋
???? 優先級驗證方法
# 創建測試插件
echo -e '#!/bin/sh\necho "Plugin from: $0"' > docker-testplugin# 在所有路徑放置同名文件
cp docker-testplugin ~/.docker/cli-plugins/
sudo cp docker-testplugin /usr/local/lib/docker/cli-plugins/
sudo cp docker-testplugin /usr/local/libexec/docker/cli-plugins/
sudo cp docker-testplugin /usr/lib/docker/cli-plugins/
sudo cp docker-testplugin /usr/libexec/docker/cli-plugins/# 添加執行權限
chmod +x ~/.docker/cli-plugins/*
sudo chmod +x /usr/*/docker/cli-plugins/*# 運行測試(顯示最高優先級路徑)
docker testplugin
# 輸出: Plugin from: /home/youruser/.docker/cli-plugins/docker-testplugin
故障排查提示:當命令不生效時,使用
which -a docker-compose
檢查是否存在舊版 v1 沖突,或使用strace -e file docker compose version 2>&1 | grep cli-plugins
查看實際加載路徑。
優先級對比 3
Docker Compose V2 安裝目錄優先級詳解(從高到低)
???? 優先級順序表
排名 | 目錄路徑 | 類型 | 權限要求 | 特點 | 推薦指數 |
---|---|---|---|---|---|
1 | ~/.docker/cli-plugins 或 $HOME/.docker/cli-plugins | 用戶級 | 無需sudo | ? 最高優先級 🔐 僅影響當前用戶 💻 開發環境首選 | ????? |
2 | /usr/local/lib/docker/cli-plugins | 系統級 | 需sudo | 🏆 最佳系統目錄 📦 符合FHS標準 🛡? 與系統包隔離 | ????☆ |
3 | /usr/local/libexec/docker/cli-plugins | 系統級 | 需sudo | ?? 次選系統目錄 📁 較少使用 🔧 特殊場景備用 | ???☆☆ |
4 | /usr/lib/docker/cli-plugins | 系統級 | 需sudo | ? 易沖突 🔄 可能被apt/yum覆蓋 ? 不推薦手動安裝 | ??☆☆☆ |
5 | /usr/libexec/docker/cli-plugins | 系統級 | 需sudo | 🚫 最低優先級 🧩 系統守護進程目錄 ?? 強烈不建議使用 | ?☆☆☆☆ |
關鍵機制解析
-
搜索順序原理
Docker CLI 按以下順序掃描插件目錄:- 找到即停:發現有效插件后立即終止搜索
- 權限優先:用戶級目錄 > 系統級目錄
-
目錄特性對比
特性 用戶目錄 /usr/local/lib /usr/lib 多用戶共享 ? 僅當前用戶 ? 所有用戶 ? 所有用戶 系統更新影響 🔒 不受影響 🔒 不受影響 ?? 可能被覆蓋 包管理器沖突風險 🟢 無風險 🟢 無風險 🔴 高風險 FHS標準符合性 ? 符合 ? 符合 ?? 系統保留目錄
最佳實踐指南
???? 場景1:個人開發環境
# 首選用戶級安裝(無需sudo)
mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
???? 場景2:生產服務器/多用戶系統
# 使用最佳系統目錄
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
???? 應避免的目錄
# 危險示例(可能導致系統沖突)
sudo curl ... -o /usr/lib/docker/cli-plugins/docker-compose # ?
sudo curl ... -o /usr/libexec/docker/cli-plugins/docker-compose # ?
優先級驗證方法
# 1. 檢查實際加載的插件路徑
docker compose version --short# 2. 查看Docker的插件搜索路徑
docker info --format '{{range .ClientInfo.Plugins}}{{.Path}}{{"\n"}}{{end}}'# 3. 檢測目錄存在性(按優先級順序)
ls -d ~/.docker/cli-plugins \/usr/local/lib/docker/cli-plugins \/usr/local/libexec/docker/cli-plugins \/usr/lib/docker/cli-plugins \/usr/libexec/docker/cli-plugins 2>/dev/null
關鍵結論:
用戶級目錄 (~/.docker/cli-plugins
) 和系統級目錄 (/usr/local/lib/docker/cli-plugins
) 是唯二推薦的選擇,其他目錄存在兼容性風險或違反Linux目錄規范。
優先級對比 4
以下是 Docker CLI 插件目錄優先級的專業對比說明,按照從高到低的順序排列(1為最高優先級):
???? 優先級排序(數字越小優先級越高)
優先級 | 目錄路徑 | 類型 | 適用場景 | 檢查順序 |
---|---|---|---|---|
1 | ~/.docker/cli-plugins 或 $HOME/.docker/cli-plugins | 用戶級 | 開發者個人環境,無需sudo權限 | 最先檢查 |
2 | /usr/local/lib/docker/cli-plugins | 系統級 | 管理員手動安裝首選位置 | 次之 |
3 | /usr/local/libexec/docker/cli-plugins | 系統級 | BSD系統或特殊環境 | 第三 |
4 | /usr/lib/docker/cli-plugins | 系統級 | 包管理器安裝位置(apt/yum/dnf) | 第四 |
5 | /usr/libexec/docker/cli-plugins | 系統級 | RPM系發行版專用位置 | 最后檢查 |
???? 關鍵差異分析
-
用戶級 vs 系統級:
~/.docker/cli-plugins
優先級最高,因為:# 無需sudo即可安裝 curl -o ~/.docker/cli-plugins/docker-compose ... chmod +x ~/.docker/cli-plugins/docker-compose
- 其他目錄需要root權限
-
手動安裝 vs 包管理安裝:
/usr/local/...
(手動安裝)優先級高于/usr/...
(包管理安裝)- 示例:手動安裝覆蓋包管理版本
sudo install docker-compose /usr/local/lib/docker/cli-plugins/ # 優先級高于apt安裝版本
-
lib vs libexec:
- 同級別下
lib
優先于libexec
/usr/local/lib > /usr/local/libexec
/usr/lib > /usr/libexec
- 同級別下
???? 優先級驗證方法
# 1. 創建測試插件
cat <<'EOF' > docker-test
#!/bin/sh
echo "Active plugin from: $0"
EOF
chmod +x docker-test# 2. 在所有目錄安裝同名插件
install_paths=("$HOME/.docker/cli-plugins""/usr/local/lib/docker/cli-plugins""/usr/local/libexec/docker/cli-plugins""/usr/lib/docker/cli-plugins""/usr/libexec/docker/cli-plugins"
)for path in "${install_paths[@]}"; dosudo mkdir -p "$path"sudo cp docker-test "$path/docker-test" # 需要sudo權限
done# 3. 執行測試(顯示最高優先級路徑)
docker test
# 輸出:Active plugin from: /home/yourname/.docker/cli-plugins/docker-test# 4. 刪除用戶級插件后重試
rm ~/.docker/cli-plugins/docker-test
docker test
# 輸出:Active plugin from: /usr/local/lib/docker/cli-plugins/docker-test
???? 特殊規則
-
環境變量覆蓋:
# 設置自定義路徑(最高優先級) export DOCKER_CLI_PLUGINS_PATH="/custom/plugins:/other/plugins" docker test # 只檢查指定路徑
-
同目錄多版本處理:
- 同一目錄內按文件名排序取第一個
- 避免在多個目錄安裝同名插件
-
網絡插件優先級:
- 本地插件 > 網絡插件(Docker Hub下載的插件)
???? 最佳實踐建議
-
開發環境:
# 用戶級安裝(推薦) mkdir -p ~/.docker/cli-plugins curl -L https://.../docker-compose -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose
-
生產環境:
# 系統級安裝(選擇優先級2的目錄) sudo curl -L https://.../docker-compose -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
-
故障排查:
# 檢查插件搜索路徑 docker info --format '{{range .ClientInfo.Plugins}}{{.Path}}{{"\n"}}{{end}}'# 檢查插件是否存在 which -a docker-compose # 顯示所有路徑
優先級對比 5
???? Docker CLI 插件目錄優先級詳解
???????? 優先級從高到低排序:
優先級 | 目錄路徑 | 用戶影響范圍 | 典型使用場景 | 權限要求 |
---|---|---|---|---|
1 | ~/.docker/cli-plugins 或 $HOME/.docker/cli-plugins | 單用戶 | 用戶專屬插件/測試版本 | 用戶權限 |
2 | /usr/local/lib/docker/cli-plugins | 所有用戶 | 管理員手動安裝的共享插件 | sudo |
3 | /usr/local/libexec/docker/cli-plugins | 所有用戶 | Docker內部組件/特殊用途插件 | sudo |
4 | /usr/lib/docker/cli-plugins | 所有用戶 | 系統包管理器(apt/yum)安裝的插件 | sudo |
5 | /usr/libexec/docker/cli-plugins | 所有用戶 | Docker守護進程專用插件 | sudo |
???? 關鍵特性對比
???????? 1. 加載順序機制
# 查看實際加載順序
docker info --format '{{range .ClientInfo.PluginsPaths}}{{.}}{{"\n"}}{{end}}'# 典型輸出(按優先級降序):
/home/yourname/.docker/cli-plugins
/usr/local/lib/docker/cli-plugins
/usr/local/libexec/docker/cli-plugins
/usr/lib/docker/cli-plugins
/usr/libexec/docker/cli-plugins
???????? 2. 同名插件沖突解決
- 當多個目錄存在同名插件時:
- 用戶級優先:
~/.docker/cli-plugins
中的插件始終優先執行 - 同級別順序:系統級目錄按文件系統枚舉順序(通常字典序)
- 用戶級優先:
???????? 3. 目錄用途差異
目錄類型 | 典型內容 | 修改頻率 |
---|---|---|
~/.docker/ | 用戶自定義插件、開發測試版本 | 高 |
/usr/local/ | 手動安裝的生產插件 | 中 |
/usr/lib/ | 系統包管理器維護的穩定版本 | 低 |
*/libexec/ | Docker內部組件(如buildx) | 極低 |
???? 最佳實踐指南
???????? 個人開發環境
# 用戶級安裝 (優先級最高)
mkdir -p ~/.docker/cli-plugins
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \-o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
???????? 多用戶生產服務器
# 系統級安裝 (推薦)
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \-o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
???????? 特殊場景說明
-
覆蓋系統插件:
# 在用戶目錄放置同名插件可覆蓋系統級插件 cp custom-compose ~/.docker/cli-plugins/docker-compose
-
診斷插件沖突:
# 檢查實際加載的插件路徑 which -a docker-compose | xargs ls -l# 查看Docker識別的插件路徑 docker compose version --short
-
libexec
目錄警告:- 避免手動修改
*/libexec/
目錄 - Docker會自動管理這些目錄的內容
- 手動放置文件可能導致版本沖突
- 避免手動修改
優先級黃金法則:
用戶級(~/.docker
) > 手動安裝(/usr/local
) > 系統包管理(/usr/lib
) > 內部目錄(libexec
)
生產環境推薦使用/usr/local/lib/docker/cli-plugins
平衡控制力和可維護性。
優先級對比 6
以下是 Docker CLI 插件目錄的優先級詳細對比(從高到低),包含技術原理和使用場景分析:
???? 優先級完整排序(1 → 5 從高到低)
序號 | 路徑 | 優先級 | 技術原理 | 典型使用場景 | 權限要求 | 持久性 |
---|---|---|---|---|---|---|
1 | ~/.docker/cli-plugins 或 $HOME/.docker/cli-plugins | ★★★★★ | 最先檢查用戶空間路徑,覆蓋所有系統級插件 | 個人開發環境、無 root 權限操作 | 用戶權限 | 用戶持久 |
2 | /usr/local/lib/docker/cli-plugins | ★★★★☆ | 手動安裝首選位置,避免與包管理器沖突 | 生產服務器手動安裝 | 需要 sudo | 系統更新保留 |
3 | /usr/local/libexec/docker/cli-plugins | ★★★☆☆ | 傳統 Unix 的 “libexec” 目錄,存放輔助執行文件 | 特殊系統配置 | 需要 sudo | 系統更新保留 |
4 | /usr/lib/docker/cli-plugins | ★★☆☆☆ | 包管理器標準安裝路徑(apt/yum/dnf) | 通過系統包安裝 | 包管理器 | 包更新時替換 |
5 | /usr/libexec/docker/cli-plugins | ★☆☆☆☆ | 系統級后臺執行目錄,通常存放服務型插件 | Docker 系統服務插件 | 包管理器 | 包更新時替換 |
???? 技術細節對比
???????? 1. 加載機制
// Docker 源碼中的加載順序 (moby/cli/cli-plugins/plugin/plugin.go)
var pluginPaths = []string{filepath.Join(configDir, "cli-plugins"), // ~/.docker/cli-plugins"/usr/local/lib/docker/cli-plugins", // 手動安裝"/usr/local/libexec/docker/cli-plugins", // 傳統 Unix"/usr/lib/docker/cli-plugins", // 包管理器"/usr/libexec/docker/cli-plugins", // 系統服務
}
查找規則:按順序掃描,找到第一個匹配插件后立即終止搜索。
???????? 2. 路徑驗證命令
# 查看實際加載的插件路徑
docker info --format '{{json .ClientInfo.Plugins}}' | jq '.[].Path'# 測試優先級(創建同名測試插件)
echo -e '#!/bin/sh\necho "Active plugin: $0"' > ~/.docker/cli-plugins/docker-test
sudo cp ~/.docker/cli-plugins/docker-test /usr/local/lib/docker/cli-plugins/
sudo cp ~/.docker/cli-plugins/docker-test /usr/lib/docker/cli-plugins/# 執行測試(只會顯示最高優先級的路徑)
docker test
# 輸出: Active plugin: /home/user/.docker/cli-plugins/docker-test
???????? 3. 文件系統標準
路徑 | 符合標準 | 說明 |
---|---|---|
~/.docker/cli-plugins | XDG Base Directory | 遵循 Linux 用戶配置標準 |
/usr/local/... | FHS (Filesystem Hierarchy Standard) | 本地管理員安裝位置 |
/usr/lib/... | FHS | 發行版包管理器標準位置 |
.../libexec/... | FHS | 內部執行文件專用目錄 |
???? 使用場景推薦
???????? 優先使用場景
# 1. 個人開發環境(最高優先級)
curl -sSL https://.../compose -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose# 2. 多用戶服務器(共享安裝)
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -sSL https://.../compose -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
???????? 避免使用場景
# 不推薦使用 libexec 目錄(易被忽略)
sudo curl ... -o /usr/libexec/docker/cli-plugins/docker-compose # ?# 包管理器目錄可能被覆蓋
sudo apt install docker-compose-plugin # 會覆蓋 /usr/lib/docker/cli-plugins 的內容
???? 特殊場景處理
???????? 覆蓋系統插件
# 在用戶目錄放置同名插件覆蓋系統版本
cp new-compose ~/.docker/cli-plugins/docker-compose
???????? 禁用插件
# 臨時禁用
mv ~/.docker/cli-plugins/docker-compose{,.bak}# 永久移除
rm ~/.docker/cli-plugins/docker-compose
???????? 診斷插件沖突
# 查找所有位置的插件
find ~/.docker /usr/local/lib /usr/lib -path '*/cli-plugins/docker-compose' 2>/dev/null# 輸出示例:
# /home/user/.docker/cli-plugins/docker-compose
# /usr/local/lib/docker/cli-plugins/docker-compose
# /usr/lib/docker/cli-plugins/docker-compose
💡 經驗法則:
- 個人使用 →
~/.docker/cli-plugins
- 服務器共享 →
/usr/local/lib/docker/cli-plugins
- 避免手動修改
/usr/lib*
和/usr/libexec*
目錄- 優先級設計確保用戶控制權高于系統配置
優先級對比 7
以下是 Docker CLI 插件目錄的優先級完整對比說明(從高到低):
???? 優先級排序(數字越小優先級越高)
優先級 | 目錄路徑 | 訪問權限 | 典型用途 | 推薦指數 |
---|---|---|---|---|
1 | ~/.docker/cli-plugins | 用戶級 | 用戶專屬插件、測試版 | ???? |
2 | /usr/local/lib/docker/cli-plugins | 系統級 | 最佳手動安裝位置 | ????? |
3 | /usr/local/libexec/docker/cli-plugins | 系統級 | 兼容性備選路徑 | ?? |
4 | /usr/lib/docker/cli-plugins | 系統級 | 發行版包管理器安裝位置 | ??? |
5 | /usr/libexec/docker/cli-plugins | 系統級 | Docker 內部組件 | ? |
???? 關鍵特性對比
特性 | ~/.docker/cli-plugins | /usr/local/lib/… | /usr/lib/… |
---|---|---|---|
是否需要 sudo | ? 否 | ? 是 | ? 是 |
多用戶共享 | ? 僅當前用戶 | ? 所有用戶 | ? 所有用戶 |
系統更新影響 | 🔒 不受影響 | ?? 可能被覆蓋 | ?? 包管理器更新可能覆蓋 |
卸載便捷性 | 🧹 刪除目錄即可 | 🔍 需手動刪除文件 | 📦 需包管理器卸載 |
版本控制靈活性 | 💫 可多版本共存 | ?? 單版本 | ?? 單版本 |
???? 實際搜索機制
Docker CLI 按此順序查找插件:
# 偽代碼表示搜索邏輯
for path in [os.expanduser("~/.docker/cli-plugins"),"/usr/local/lib/docker/cli-plugins","/usr/local/libexec/docker/cli-plugins","/usr/lib/docker/cli-plugins","/usr/libexec/docker/cli-plugins"
]:if plugin_exists_in(path):return plugin_from(path) # 使用第一個找到的版本
???? 最佳實踐指南
???????? 推薦安裝方式
# 系統級安裝 (所有用戶可用)
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -L https://.../docker-compose -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose# 用戶級安裝 (僅當前用戶)
mkdir -p ~/.docker/cli-plugins
curl -L https://.../docker-compose -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
???????? 沖突解決方案
當同名插件存在多個位置時:
- 查看實際加載的插件:
docker compose --debug 2>&1 | grep "Loading plugin"
- 臨時繞過優先級:
# 強制使用特定路徑的插件 DOCKER_CLI_PLUGINS_PATH=/custom/path docker compose version
- 禁用低優先級插件:
sudo mv /usr/lib/docker/cli-plugins/docker-compose{,.bak}
💡 終極提示:
生產環境始終選擇/usr/local/lib/docker/cli-plugins
這是 Docker 官方推薦路徑,平衡了可維護性(/usr/lib/
)和靈活性(~/.docker/
)的最佳位置。