惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
Schneier on Security
Schneier on Security
B
Blog RSS Feed
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
A
About on SuperTechFans
Recorded Future
Recorded Future
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
Hugging Face - Blog
Hugging Face - Blog
The GitHub Blog
The GitHub Blog
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
Vercel News
Vercel News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
V2EX - 技术
V2EX - 技术
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
V
Visual Studio Blog
Martin Fowler
Martin Fowler
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Exploit Database - CXSecurity.com
F
Full Disclosure
Scott Helme
Scott Helme
H
Heimdal Security Blog
博客园 - 叶小钗
Google DeepMind News
Google DeepMind News
Cyberwarzone
Cyberwarzone
Application and Cybersecurity Blog
Application and Cybersecurity Blog
V
Vulnerabilities – Threatpost
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
WordPress大学
WordPress大学
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
Jina AI
Jina AI
S
Securelist
小众软件
小众软件
Simon Willison's Weblog
Simon Willison's Weblog
J
Java Code Geeks
AWS News Blog
AWS News Blog
N
News and Events Feed by Topic
博客园 - 三生石上(FineUI控件)
量子位

Linux – 魔帆博客

Git配置:如何优雅的配置多用户并使用 ssh 密钥验证 | 魔帆博客 Git 提示 fatal: unsafe repository is owned by someone else 错误 | 魔帆博客 Linux 报错Certificate verification failed: The certificate is NOT trusted. | 魔帆博客 Fedora 系统升级 32->34 跨版本升级 | 魔帆博客 Docker WSL1/2 迁移 Linux 发行版目录 | 魔帆博客 双重验证 Authy 导出所有 TOTP token 和 golang 配置 GOPROXY 解决网络问题 | 魔帆博客 Linux 教程:Linux 初学者必了解的概念 | 魔帆博客 创建支持安全启动(Secure Boot)的 Arch Linux ISO 安装镜像 | 魔帆博客 使用 Aria2 搭建离线下载服务器 | 魔帆博客 【记录】Deepin 桌面无限转圈(风火轮) | 魔帆博客 梅林固件KoolProxy插件崩溃连接ssh卸载指南(北) | 魔帆博客 [Linux] dconf 系统配置编辑器——我的系统我做主 | 魔帆博客 Arch Linux 通过 xdg-mime 设置默认文件管理器解决总是用 Visual Studio Code 打开文件夹的问题 | 魔帆博客
教程:如何更新安装 docker-compose V2 和使用 docker switch | 魔帆博客
野小新 · 2022-02-25 · via Linux – 魔帆博客

Docker Compose V1 是 python 写的,目前不会太维护了。建议使用 golang 编写的全新 Docker Compose V2

如果你用 Arch Linux,最近的更新可能会直接让旧的 Docker Compose V1 缺少某个依赖而爆炸,需要安装 AUR 中的一个包才能解决。所以我们一起来 🥲被迫 升级到 Docker Compose V2 吧

安装 Docker Compose V2

Arch Linux 等发行版可直接通过包管理器安装 docker 和 docker-compose

docker compose 项目 release 页面(目前主线是V2):

单用户

  1. 在项目 release 页面下载 Docker Compose V2 二进制程序,放入 $HOME/.docker/cli-plugins, 并命名为 docker-compose
paxos in ~ at server.morfans.cn
➜ mkdir -p ~/.docker/cli-plugins/

paxos in ~ at server.morfans.cn
➜ curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose

PS: curl 一定要加参数 -L

  1. 设定可执行权限
paxos in ~ at server.morfans.cn
➜ chmod +x ~/.docker/cli-plugins/docker-compose

多用户(系统)

和单用户安装方式相同

将下载的二进制程序放入如下位置并设定可执行权限

  • /usr/local/lib/docker/cli-plugins
paxos in ~ at server.morfans.cn
➜ sudo mkdir -p /usr/local/lib/docker/cli-plugins

# 下载插件
paxos in ~ at server.morfans.cn
➜ 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

# 设置权限
paxos in ~ at server.morfans.cn
➜ sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

使用 Docker Compose V2

Compose V2 是直接作为插件的形式放到了 Docker Client 中,这意味之前的 docker-compose 命令将会变成 docker 程序下的一个参数

可以使用 `docker info` 查看

paxos in ~ at server.morfans.cn
➜ docker info
---
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
  compose: Docker Compose (Docker Inc., v2.2.3)
  scan: Docker Scan (Docker Inc., v0.8.0)
paxos in ~ at server.morfans.cn
➜ docker compose version
Docker Compose version v2.2.3

如果你不习惯的话,继续往下看文章,下面将为你介绍一种兼容旧的使用习惯的方案:Compose Switch

Compose Switch

官方链接: docker/compose-switch

Compose Switch 是一个工具,用来替代之前 Docker Compose V1 的 python 可执行文件 docker-compose,它能自动翻译命令到 docker compose(Docker Compose V2)。

😜 说人话就是使用这个工具可以用 docker-compose 命令来使用 Docker Compose V2

一键懒人安装

paxos in ~ at server.morfans.cn
➜ curl -fL https://raw.githubusercontent.com/docker/compose-switch/master/install_on_linux.sh | sh

手动安装

需要有管理员权限

  1. 重命名之前的 Docker Compose V1

如果你忘记之前你咋装的 Docker Compose V1 了,可以这样找 Docker Compose V1

paxos in ~ at server.morfans.cn
➜ command -v docker-compose
/usr/local/bin/docker-compose

paxos in ~ at server.morfans.cn
➜ which docker-compose
/usr/local/bin/docker-compose

如果没有Docker Compose V1 想装 Docker Compose V1 也可以装一个,参考官方文档:

找到旧的 Docker Compose V1 后进行重命名操作,因为稍后会用到这个名称和路径

如果没安装 Docker Compose V1 怎么办?

换个角度想想,没安装大概率是你用不到,直接用 Docker Compose V2,下面的命令有关 Docker Compose V1 的操作省去即可。比如重命名,使用 alternatives 时候也无需添加 docker-compose(直接 ln -s 创建软链接或重命名都可)

把旧的 Docker Compose V1 重命名:

paxos in ~ at server.morfans.cn
➜ mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-v1
  1. 下载 compose-switch 并放入 Path 里有的 bin 目录
paxos in ~ at server.morfans.cn
➜ curl -fL https://github.com/docker/compose-switch/releases/latest/download/docker-compose-linux-amd64 -o /usr/local/bin/compose-switch

# 加可执行权限
paxos in ~ at server.morfans.cn
➜ chmod +x /usr/local/bin/compose-switch
  1. 为了方便日后能方便切换 Docker Compose V1,制作可替换的 alias
  • rhel 系的系统用 alternatives
  • debian 系的用 update-alternatives

系统有哪个命令就用哪个,替换下面的命令就行了。如果没有就简单粗暴用软连接 👀

优先级大的默认

paxos in ~ at server.morfans.cn
➜ sudo update-alternatives --install /usr/local/bin/docker-compose docker-compose /usr/local/bin/docker-compose-v1 1

paxos in ~ at server.morfans.cn
➜ sudo alternatives --install /usr/local/bin/docker-compose docker-compose /usr/local/bin/compose-switch 99

使用

配置后,当你执行docker-compose 命令就自动调用 Compose Switch 将命令转为 docker compose xxx (使用 Docker Compose V2)

paxos in ~ at server.morfans.cn
➜ docker-compose version
Docker Compose version v2.2.3

日后需要切换到 Docker Compose V1 只需要使用如下命令就能方便切换了:

paxos in ~ at server.morfans.cn
➜ update-alternatives --config docker-compose

选择 Docker Compose V1 后:

paxos in ~ at server.morfans.cn
➜ docker-compose version
docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019