Docker 来自外部机器的远程 Api 没有响应
Docker Remote Api from external machine doesn't respond
我想这样做:
curl --insecure --cert cert.pem --key key.pem https://192.168.30.53:2376/images/json
我在具有虚拟网络 (NAT) 的服务器上有 2 个虚拟机:
mh-keystore 192.168.2.103 -> 192.168.30.52
swarm-master 192.168.2.100 -> 192.168.30.53
本地 NAT ip 链接到外部 ip。
我可以通过 SSH 访问机器。
docker-machine 安装在 mh-keystore 上。
我使用通用驱动程序将 docker 部署到 swarm-master
当我从 docker 机器主机 (mh-keystore) 调用 api 时,它起作用了:
$curl --insecure --cert .docker/machine/certs/cert.pem --key .docker/machine/certs/key.pem https://192.168.2.100:2376/images/json
[{"Id":"6b40fe7724bd29107f6182ca2befec011cdf524b23ebc4c9a33591d6b7aea4ee","ParentId":"2b4c55187a27a43f6c5aebab707e75cffee14f7c3cc02e4f74429992bd5f7db2","RepoTags":["swarm:latest"],"RepoDigests":[],"Created":1446581252,"Size":0,"VirtualSize":15602184,"Labels":null},{"Id":"ded5e192a685b2c5f048ea98ca24f4c8c4dccc012185448a0247b49b24645007","ParentId":"8f17e9411cf6e7467e630b369a0216b582a8a811901befc800de41537bde1f04","RepoTags":["docker/whalesay:latest"],"RepoDigests":[],"Created":1432591463,"Size":0,"VirtualSize":247049019,"Labels":{}}]
所以我想从我自己的电脑上调用它。
curl --insecure --cert cert.pem --key key.pem https://192.168.30.53:2376/images/json
curl --insecure --cert cert.pem --key key.pem https://192.168.30.52:2376/images/json
Curl 没有响应。
密钥和证书是mh-keystore 的副本。 (不知道是不是好办法)
怎么了?
谢谢
问题出在我学校的防火墙上,我使用 iptables 绕过它以使用 8080 端口:
iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:3376
我想这样做:
curl --insecure --cert cert.pem --key key.pem https://192.168.30.53:2376/images/json
我在具有虚拟网络 (NAT) 的服务器上有 2 个虚拟机:
mh-keystore 192.168.2.103 -> 192.168.30.52
swarm-master 192.168.2.100 -> 192.168.30.53
本地 NAT ip 链接到外部 ip。 我可以通过 SSH 访问机器。
docker-machine 安装在 mh-keystore 上。 我使用通用驱动程序将 docker 部署到 swarm-master
当我从 docker 机器主机 (mh-keystore) 调用 api 时,它起作用了:
$curl --insecure --cert .docker/machine/certs/cert.pem --key .docker/machine/certs/key.pem https://192.168.2.100:2376/images/json
[{"Id":"6b40fe7724bd29107f6182ca2befec011cdf524b23ebc4c9a33591d6b7aea4ee","ParentId":"2b4c55187a27a43f6c5aebab707e75cffee14f7c3cc02e4f74429992bd5f7db2","RepoTags":["swarm:latest"],"RepoDigests":[],"Created":1446581252,"Size":0,"VirtualSize":15602184,"Labels":null},{"Id":"ded5e192a685b2c5f048ea98ca24f4c8c4dccc012185448a0247b49b24645007","ParentId":"8f17e9411cf6e7467e630b369a0216b582a8a811901befc800de41537bde1f04","RepoTags":["docker/whalesay:latest"],"RepoDigests":[],"Created":1432591463,"Size":0,"VirtualSize":247049019,"Labels":{}}]
所以我想从我自己的电脑上调用它。
curl --insecure --cert cert.pem --key key.pem https://192.168.30.53:2376/images/json
curl --insecure --cert cert.pem --key key.pem https://192.168.30.52:2376/images/json
Curl 没有响应。
密钥和证书是mh-keystore 的副本。 (不知道是不是好办法)
怎么了?
谢谢
问题出在我学校的防火墙上,我使用 iptables 绕过它以使用 8080 端口:
iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 172.17.0.2:3376