访问docker容器通过IP VS端口公开

我有一个DOCKER_HOST指定:

DOCKER_HOST=tcp://g3-docker-1:2375 

由TLS保护。 在这个主机上,我可以看到不同configuration的“jboss / wildfly”容器,并加载了不同的应用程序。 有些人可以根据软件testing的要求启动它们。 使用以下docker-compose:

 version: '2' services: wildfly: build: dockerfile: Dockerfile.wildfly context: . ports: - "8080:8080" depends_on: - logvolume - mariadb volumes_from: - logvolume mariadb: image: mariadb:latest ports: - "3307:3307" environment: - MYSQL_ROOT_PASSWORD=secret logvolume: build: dockerfile: Dockerfile.logvolume context: . volumes: - /opt/jboss/wildfly/standalone/log:/opt/jboss/wildfly/standalone/log 

我打算build立一个相当不同的预装数据和不同的webapps在“野蛮”

当我启动这些容器时,在_dirname_defaultnetworking(桥接)内为每个容器分配一个IP地址。 Jboss是由外部世界与$ DOCKER_HOST:8080和maria_db是可及的如此美好如此好…但如果我有一个这样的几个。 我是否必须将不同的端口映射到不同的野蝇上,或者有另外一种方式来访问外部的docker化野蝇。 通过containerid或者如此?

我现在使用nginx作为反向代理,以决定基于嗅觉的url来交谈

这需要在docker-compose.yml中有这样的附加服务:

 reverseproxy: build: dockerfile: Dockerfile.nginx context: . ports: - 80:80 depends_on: - wildfly 

和下面的nginx.conf:

 worker_processes 1; events { worker_connections 1024; } http { sendfile on; upstream docker-wildfly { server wildfly:8080; } server { listen 80; location /wildfly/ { proxy_pass http://docker-wildfly/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } } 

}

每个野蝇会得到自己的位置