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

推荐订阅源

I
InfoQ
D
DataBreaches.Net
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI
Martin Fowler
Martin Fowler
Security Latest
Security Latest
Cisco Talos Blog
Cisco Talos Blog
MongoDB | Blog
MongoDB | Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
IT之家
IT之家
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security Affairs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园_首页
L
LINUX DO - 最新话题
Know Your Adversary
Know Your Adversary
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Attack and Defense Labs
Attack and Defense Labs
T
Tenable Blog
G
GRAHAM CLULEY
Y
Y Combinator Blog
P
Palo Alto Networks Blog
L
LINUX DO - 热门话题
Hugging Face - Blog
Hugging Face - Blog
W
WeLiveSecurity
C
Cybersecurity and Infrastructure Security Agency CISA
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
The Register - Security
The Register - Security
T
The Exploit Database - CXSecurity.com
MyScale Blog
MyScale Blog
M
MIT News - Artificial intelligence
Cyberwarzone
Cyberwarzone
雷峰网
雷峰网
T
Tailwind CSS Blog
V2EX - 技术
V2EX - 技术
T
Threat Research - Cisco Blogs
S
Secure Thoughts
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
O
OpenAI News
C
Cyber Attacks, Cyber Crime and Cyber Security
The Cloudflare Blog
量子位
Apple Machine Learning Research
Apple Machine Learning Research
T
Threatpost
S
SegmentFault 最新的问题
小众软件
小众软件
Google DeepMind News
Google DeepMind News
Help Net Security
Help Net Security

技术教程 – 魔帆博客

Mac mini + iPad 随航梦幻联动!零显示器配置指南,iPad 秒变 Mac 主屏幕 | 魔帆博客 使用 GNU/Linux 搭建多出口软路由 | 魔帆博客 配置和使用 Windows Dev Drive 开发驱动器 | 魔帆博客 解锁iOS侧载自由:使用sideStore轻松搞定ipa签名 | 魔帆博客 Git配置:如何优雅的配置多用户并使用 ssh 密钥验证 | 魔帆博客 Windows 注册表编辑或清除多显示器配置 | 魔帆博客 Git 提示 fatal: unsafe repository is owned by someone else 错误 | 魔帆博客 Linux 报错Certificate verification failed: The certificate is NOT trusted. | 魔帆博客 安装有 RootMagiskXposedPlay 的 WSA 安卓子系统 | 魔帆博客 Fedora 系统升级 32->34 跨版本升级 | 魔帆博客 Windows10 系统盘开启 Bitlocker | 魔帆博客 2022 年 Android 下的安卓浏览器使用指北-Firefox向 | 魔帆博客 Docker WSL1/2 迁移 Linux 发行版目录 | 魔帆博客 Spotify 主题 spicetify-fluent - 微软 win11 风格美化 | 魔帆博客 WSA 安卓子系统 adb 提示 cannot connect the target machine actively refused it 10061 | 魔帆博客 双重验证 Authy 导出所有 TOTP token 和 golang 配置 GOPROXY 解决网络问题 | 魔帆博客 powershll 像 bash 一样为单个命令设置临时环境变量 | 魔帆博客 Linux 教程:Linux 初学者必了解的概念 | 魔帆博客 安卓电池充电保护-智能充电/温控切断(Root方案) | 魔帆博客
教程:如何更新安装 docker-compose V2 和使用 docker switch | 魔帆博客
野小新 · 2022-02-25 · via 技术教程 – 魔帆博客

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