我的目标是从运行 Podman 的机器以外的其他机器上试用基于 REST 的 v2 HTTP API。因此,我创建了一台虚拟机(基于 Arch-Linux)并在其上安装了 Podman 1.9.x。主机系统是 Linux Mint。VM 的网络适配器设置为桥接模式。
在虚拟机内部,API 服务启动如下:
$ podman system service --timeout 5000 tcp:localhost:12345
在虚拟机内部,也可以访问该服务:
curl localhost:12345/images/json // returns an empty JSON-array, as expected
但是,无法从主机系统访问 API:
Failed to connect to 192.168.178.62 port 12345: Connection refused
客户系统上的 iptables 为“空”,不应该是原因。可以通过 SSH 连接。为了进行进一步验证,我安装了lighttpd在客户机上并且可以从主机访问它:
curl 192.168.178.62:80 // returns HTTP 200 -> successful
我卡在了这里。这是网络相关的问题,还是 Podman 主动拒绝来自其他系统的连接?
答案1
事实证明,我以错误的方式启动了 Podman API。对于外部访问,应该是tcp:0.0.0.0:12345
而不是tcp:localhost:12345
。