Rancher运行需要互联网访问的APP

Rancher v 1.6.10,Docker v 17.06.2-ce

我通过Rancher UI部署一个堆栈,其中包含一个Docker容器,其中有一个应用程序通过互联网连接到Dropbox。 但该应用程序无法访问互联网。

但是,如果我不使用牧场主,并简单地使用docker – 本地组成,那么它一切正常。

Rancher创build的networking似乎是我想的问题。

我可以build议吗?

我的docker撰写文件:

version: '2' services: elasticsearch1: image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3 container_name: es1 environment: - cluster.name=idc-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - xpack.security.enabled=false ulimits: memlock: soft: -1 hard: -1 mem_limit: 1g volumes: - esdata1:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - docker-elk idcdb: image: postgres:9.6 ports: - "5432:5432" environment: - POSTGRES_PASSWORD=DriveMe - POSTGRES_USER=idc - POSTGRES_DB=idc volumes: - pgdata:/var/lib/db idcredis: image: redis:4.0 environment: - ALLOW_EMPTY_PASSWORD=yes ports: - '6379:6379' volumes: - redisdata:/var/lib/redis booking-service: environment: - PORT=8085 - PROFILE=integration ports: - 8085:8085 image: idc/idc-booking-service depends_on: - idcdb - idcredis notification-service: environment: - PORT=8087 - PROFILE=integration ports: - 8087:8087 image: idc/idc-notification-service depends_on: - idcredis analytics-service: environment: - PORT=8088 - PROFILE=integration ports: - 8088:8088 image: idc/idc-analytics-service depends_on: - idcredis - elasticsearch1 kibana: image: docker.elastic.co/kibana/kibana:5.6.3 environment: - "ELASTICSEARCH_URL=http://elasticsearch1:9200" networks: - docker-elk volumes: pgdata: {} redisdata: {} esdata1: driver: local networks: docker-elk: driver: bridge 

你应该在启动docker时指定networking

 --net=host 

如果这不能解决你的问题

 sudo gedit /etc/NetworkManager/NetworkManager.conf comment out the following line: #dns=dnsmasq 

然后

sudo重启networkingpipe理器

您可以使用Rancher LB并将其添加到您的应用程序,如下所示:

  1. 在应用程序的堆栈中,您将必须单击添加服务button并select添加负载平衡器
  2. 然后你确定在哪里说Access被设置为Public
  3. 在请求主机中,您将不得不添加所需的URL,例如:mylocal.dev
  4. 那么你将不得不添加端口80,所以它可以从外部世界80端口访问
  5. select您希望LB申请的服务和内部应用程序端口。

这就是所有:)现在你应该能够从外部世界连接到mylocal.dev。