泊坞窗无法访问端口容器
我正在动物园管理员(不是直通码头工人)以外在我的本地与港口2181泊坞窗无法访问端口容器
此外,试图运行一个码头工人形象直通码头工人组成如下。
#
# Mesos
#
mesos-master:
image: mesosphere/mesos-master:1.0.3
restart: always
privileged: true
network_mode: host
volumes:
- ~/mesos-data/master:/tmp/mesos
environment:
MESOS_CLUSTER: "mesos-cluster"
MESOS_QUORUM: "1"
MESOS_ZK: "zk://localhost:2181/mesos"
MESOS_PORT: 5000
MESOS_REGISTRY_FETCH_TIMEOUT: "2mins"
MESOS_EXECUTOR_REGISTRATION_TIMEOUT: "2mins"
MESOS_LOGGING_LEVEL: INFO
MESOS_INITIALIZE_DRIVER_LOGGING: "false"
Zookeepr正在侦听端口2181,但是我的码头工人进程无法连接到动物园管理员端口2181
有什么缺失?
感谢
您从搬运工容器内指向localhost
。这意味着您的Docker容器会尝试连接到该特定端口上的容器本身(localhost),而不是您服务器的本地主机上。您需要指定要连接的特定IP,或者您可以使用--net="host"
选项运行Docker容器。
$ docker run -d --net="host" ...
这将创建主机网络内部,而不是默认的桥接网络内部的容器。
例如: 我在主机的127.0.0.1:80
上创建了一个apache容器(默认)和映射端口。所以在我的服务器上,我可以卷曲127.0.0.1:80
。
$ docker run -d -p 80:80 httpd
curl 127.0.0.1:80
从主机的工作原理:
$ curl localhost:80
<html><body><h1>It works!</h1></body></html>
如果我开始卷曲帮助容器安装在其中我会卷曲127.0.0.1:80
:
$ docker run --rm tutum/curl /bin/bash -c 'curl 127.0.0.1:80'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused
连接被拒绝,因为容器内默认桥接网络并尝试在端口80上自行卷曲。
现在我开始host
网络内部的容器:
$ docker run --net=host --rm tutum/curl /bin/bash -c 'curl 127.0.0.1:80'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 45 100 45 0 0 8573 0 --:--:-- --:--:-- --:--:-- 22500
<html><body><h1>It works!</h1></body></html>
的--net=host
翻译成你的搬运工,撰写文件,意味着你必须添加network_mode: host
我已添加network_mode:在我的泊坞窗撰写主机。此外,ZK是一个正常的过程,并没有运行作为码头工人。 – user1578872
@ user1578872你可以从你的服务器curl到localhost:2181来检查zookeeper是否可以访问并正常工作?之后,从主机网络上部署的容器内部尝试相同的操作。 – lvthillo
它在我的主机中工作,但不在部署在主机网络中的容器内。不知道还有什么要补充的。 – user1578872
尝试添加'主机名:撰写文件中127.0.0.1' 。 – yamenk
zk是否也在使用'network_mode:host'运行?而不是'localhost'尝试使用'127.0.0.1' –
ZK是一个正常的过程,并没有运行一个docker。 – user1578872