Rootless Podman Quadlet部署MediaWiki/MariaDB无法从主机访问求助
问题描述
测试Rootless Podman Quadlet部署MediaWiki+MariaDB场景时,无法从主机访问数据库或MediaWiki的Apache服务。执行systemctl --user daemon-reload后通过systemctl --user start mediawiki-pod.service启动服务,但主机无法连通容器端口。
直接用podman run -p 8080:80 docker.io/mediawiki:1.42启动,或不为Pod配置网络、给每个服务设置Network=host时,主机访问正常。容器间通信无问题,怀疑桥接网络配置有误。Podman版本为5.3.1。
现有配置文件
mediawiki.pod
[Pod] PodName=Mediawiki Network=mediawiki.network PublishPort=8080:80 PublishPort=3306:3306
mediawiki-app.container
[Container] Image=docker.io/mediawiki:1.42 ContainerName=mediawiki-app Pod=mediawiki.pod Network=mediawiki.network
mediawiki-db.container
[Container] Image=docker.io/mariadb:11.6 ContainerName=mediawiki-db Pod=mediawiki.pod EnvironmentFile=mediawiki-db.env Network=mediawiki.network
mediawiki.network
[Network] Driver=bridge
问题分析与解决
核心问题
Rootless Podman下,自定义桥接网络的端口发布默认仅绑定127.0.0.1,导致主机通过非回环地址无法访问;同时容器加入Pod后重复指定网络,可能引发网络配置冲突。
修复步骤
修改Pod端口绑定地址
在mediawiki.pod的PublishPort中显式指定绑定到0.0.0.0,开放端口到主机所有网卡:[Pod] PodName=Mediawiki Network=mediawiki.network PublishPort=0.0.0.0:8080:80 PublishPort=0.0.0.0:3306:3306移除容器的重复网络配置
容器加入Pod后会自动继承Pod的网络,无需在容器配置中重复指定Network=mediawiki.network,删除对应行:- mediawiki-app.container修改后:
[Container] Image=docker.io/mediawiki:1.42 ContainerName=mediawiki-app Pod=mediawiki.pod - mediawiki-db.container修改后:
[Container] Image=docker.io/mariadb:11.6 ContainerName=mediawiki-db Pod=mediawiki.pod EnvironmentFile=mediawiki-db.env
- mediawiki-app.container修改后:
重新加载并重启服务
systemctl --user daemon-reload systemctl --user restart mediawiki-pod.service
验证方法
- 执行
podman port mediawiki-pod,确认端口绑定显示0.0.0.0:8080->80/tcp和0.0.0.0:3306->3306/tcp - 访问
http://localhost:8080测试MediaWiki服务,用数据库客户端连接localhost:3306测试MariaDB
内容的提问来源于stack exchange,提问作者Akreter
相关产品推荐
相关产品推荐

