2017-11-08 6 views
0

aussetzen Ich habe eine DOCKER_HOST angegeben von:acces Docker-Container von ip vs Port

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

durch TLS gesichert. Auf diesem Host konnte ich ziemlich "jboss/wildfly" Container in verschiedenen Konfigurationen anzeigen und mit verschiedenen Apps geladen. Sie können auf Anfrage von einigen Personen zu Softwaretests gestartet werden. Die folgende Docker-compose verwendet:

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 

ich ziemlich Ansicht Container zu bauen bin der Planung jedes mit verschiedenen vorinstallierten Daten und verschiedenen Webapps inside „Wildfly“

Wenn ich diese Container starten jeder zugeordnet eine IP Adresse innerhalb des _dirname_default Netzwerks (überbrückt). Jboss ist erreichbar mit der Außenwelt mit $ DOCKER_HOST: 8080 und maria_db ist erreichbar so gut, so gut ... Aber was ist, wenn ich ein paar davon habe. Muss ich verschiedene Ports zu den verschiedenen Wildflys zuordnen oder gibt es einen anderen Weg, um die dockerisierten Wildfliegen von der außerhalb z. über die containerid oder so?

Antwort

1

ich jetzt nginx als Reverse-Proxy, um zu entscheiden, basierend auf der URL verwenden die

sprechen Wildfly Dies muss einen addtional Service in Docker-compose.yml wie folgt aus:

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

und die folgende 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; 
     } 
    } 

}

Jeder Wildfly Wille einen eigenen Standort bekommen