我从码头-撰写文件转移到使用码头群,但我只是不知道这一点。
我有两个服务:一个是nginx代理,另一个是网站,它们都在docker群(其中有三个节点)运行得很好。
我遇到的问题是,我需要将nginx配置为proxy_pass到后端网站。目前,我能让它工作的唯一方法是指定其中一个节点的ip地址。
我的服务创建如下:
docker service create --mount type=bind,source=/../nginx.conf,target=/etc/nginx/conf.d/default.conf \ -p 443:443 \ --name nginx \ nginx
和
docker service create --name ynab \ -p 5000:5000 \ --replicas 2 \ scottrobertson/fintech-to-ynab
我试过使用服务名称,但这不起作用。
实际上,我认为我甚至不应该公开ynab服务端口(至少当我使用docker-组合时,这是可行的)。
在一个nginx容器中,我尝试了以下方法:root@5fabc5611264:/# curl http://ynab:5000/ping curl: (6) Could not resolve host: ynab root@5fabc5611264:/# curl http://nginx:5000/ping curl: (6) Could not resolve host: nginx root@5fabc5611264:/# curl http://127.0.0.1:5000/ping curl: (7) Failed to connect to 127.0.0.1 port 5000: Connection refused root@5fabc5611264:/# curl http://localhost:5000/ping curl: (7) Failed to connect to localhost port 5000: Connection refused
使用进程列表,我尝试连接到正在运行的实例id和名称:root@5fabc5611264:/# curl http://ynab.1:5000/ping curl: (6) Could not resolve host: ynab.1 root@5fabc5611264:/# curl http://pj0ekc6i7n0v:5000/ping curl: (6) Could not resolve host: pj0ekc6i7n0v
但是,只有使用节点公共ip地址:root@5fabc5611264:/# curl http://192.168.1.52:5000/ping pong root@5fabc5611264:/# curl http://192.168.1.53:5000/ping pong root@5fabc5611264:/# curl http://192.168.1.51:5000/ping pong,我才能让它工作。
我真的不想使用公共ip来防止节点崩溃。我肯定我只是做错了什么!
发布于 2017-06-10 20:17:52
这些服务需要连接到同一个网络,这样才能工作。
$ docker network create -d overlay fake-internet-points
$ docker service create --name service_one --network fake-internet-points [...]
$ docker service create --name service_two --network fake-internet-points [...] https://stackoverflow.com/questions/44471703
复制相似问题