Mac M1安装podman-compose后启动报错:找不到overlay驱动
解决M1 Mac上podman-compose找不到overlay驱动的问题
问题根源
podman在Apple Silicon(M1/M2)Mac上依赖QEMU虚拟机运行,podman-compose默认会尝试创建overlay类型的网络,但当前podman虚拟机环境要么未加载overlay驱动,要么不支持该驱动类型,直接导致报错。
解决方案
方案1:修改docker-compose.yml指定bridge驱动
直接在你的compose配置文件的networks部分,明确指定使用Mac上podman原生支持的bridge驱动:
version: "3.8" services: # 你的服务配置内容... networks: webnet: # 对应报错中的docker_phx_webnet网络名 driver: bridge
修改完成后重新执行podman-compose up即可。
方案2:通过环境变量强制指定网络驱动
不想修改配置文件的话,可以临时设置环境变量,让podman-compose默认使用bridge驱动:
# 仅当前终端会话生效 PODMAN_COMPOSE_NETWORK_DRIVER=bridge podman-compose up
如果需要长期生效,把环境变量添加到你的shell配置文件(比如~/.zshrc或~/.bashrc)中:
echo 'export PODMAN_COMPOSE_NETWORK_DRIVER=bridge' >> ~/.zshrc source ~/.zshrc
之后再运行podman-compose up就不会再出现驱动找不到的问题。
方案3:尝试在podman虚拟机中加载overlay驱动(可选,不推荐)
如果一定要使用overlay驱动,可以进入podman虚拟机检查并手动加载模块:
# 进入podman虚拟机 podman machine ssh # 检查overlay模块是否已加载 lsmod | grep overlay # 若未加载,尝试手动加载 sudo modprobe overlay # 退出虚拟机 exit
注意:Mac上的podman虚拟机默认内核大概率没有编译overlay模块,这个方法成功率很低,优先使用前两个方案。
内容的提问来源于stack exchange,提问作者Mushu8
相关产品推荐
相关产品推荐

