AlmaLinux 8.3下docker命令正常但docker-compose无法连接Docker守护进程求助
解决方案
问题根源
你当前系统用的是Podman Engine模拟Docker CLI,但docker-compose默认依赖**Docker守护进程(docker daemon)**的Unix套接字/var/run/docker.sock,而Podman是无守护进程架构,没有标准的Docker服务,因此出现连接失败错误。要通过service docker start启动Docker进程,需安装官方Docker引擎。
安装并启动官方Docker引擎步骤
1. 移除现有Podman(可选,避免CLI冲突)
sudo dnf remove -y podman docker
2. 添加Docker官方YUM源
sudo dnf install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
注:AlmaLinux 8兼容CentOS 8软件源,因此使用CentOS的Docker仓库。
3. 安装Docker引擎、CLI和docker-compose组件
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
docker-ce:包含Docker守护进程的核心引擎docker-compose-plugin:提供docker compose命令(替代独立的docker-compose工具)
4. 启动并设置Docker开机自启
sudo systemctl start docker sudo systemctl enable docker
此时执行service docker start也能正常启动服务(systemctl是service的现代替代实现)。
5. 验证配置
- 检查Docker服务状态:
sudo systemctl status docker
- 测试
docker-compose命令:
docker-compose up -d nginx mysql phpmyadmin redis workspace
替代方案:让docker-compose适配Podman(无需安装Docker)
若不想安装Docker,可通过套接字兼容配置让docker-compose使用Podman:
- 启动并启用Podman套接字服务:
sudo systemctl start podman.socket sudo systemctl enable podman.socket
- 创建软链接指向Podman套接字:
sudo ln -s /run/podman/podman.sock /var/run/docker.sock
- 安装docker-compose:
sudo dnf install -y docker-compose
完成后docker-compose即可通过兼容套接字调用Podman运行容器。
内容的提问来源于stack exchange,提问作者almalinux
相关产品推荐
相关产品推荐

