在CentOS8.5上使用docker-compose
起因
说过很多次,我非常不喜欢CentOS,想用RedHat系就掏钱去用RHEL,不然就老老实实Debian之类。然而却不得不经常要面对别人装的CentOS。
这回就是这样,需要在一个别人装的CentOS8.5上装docker-compose。
安装docker
CentOS早就停止支持这事大家都知道了吧,当然旧版还是有archive源可以用的,我就用了一个阿里云的archive源来安装。
先备份原来的源配置,然后换成阿里,再安装:
cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
cp /etc/yum.repos.d/epel-modular.repo /etc/yum.repos.d/epel-modular.repo.backup
# 下载并替换epel配置
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-archive-8.repo
# 然后更新一下
yum update
# 因为RH系不提供docker,而是使用podman,所以只能安装兼容的podman-docker
yum install podman-docker
安装docker-compose
虽然这事已经是陈年往事了,但还是说明一下:因为docker是带有一个docker服务的,这点被嫌弃很多年,所以后来出了一些不需要服务的容器方案,比如containerd和podman。K8s也已经完全抛弃了docker。
但用这些方案带来的问题就是有些docker的功能不支持,比如docker-compose。
为了提供类似的功能,也有一些部分解决方案,比如现在我们要用的。
首先是配置podman.socket以提供一个docker服务兼容接口:
# 启用podman.socket服务
systemctl enable --now podman.socket
systemctl status podman.socket
# 配置环境变量供docker-compose使用
export DOCKER_HOST=unix:///run/podman/podman.sock
# 也可以配置到.bashrc里
然后安装一下docker-compose:
# 先升级一下可能需要的依赖
pip3 install --user -U pip
pip3 install --user -U wheel
pip3 install --user -U setuptools
pip3 install --user -U setuptools_rust
# 安装docker-compose
pip3 install --user docker-compose
现在就可以正常使用docker-compose了:
~/.local/bin/docker-compose up -d
但是有些功能还是不能用的,比如docker-compose build,这种就只能先用podman把镜像先build好再用docker-compose了。
podman build -t your_image .
至少是能用了。
推送到[go4pro.org]