我确实有一个DOCKER_HOST:
DOCKER_HOST=tcp://g3-docker-1:2375
由TLS担保。在这个主机上我可以有一个很好的观点" jboss / wildfly"容器在不同的配置和加载不同的应用程序。一些人可以根据软件测试目的启动它们。使用以下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
我打算构建一个视图容器,每个容器都有不同的预加载数据和不同的webapps" wildfly"
当我启动这些容器时,每个容器都会在_dirname_default
网络(桥接)中分配一个IP地址。使用$ DOCKER_HOST:8080可以通过外部世界访问Jboss,并且可以访问maria_db这么好......
但是,如果我有几个这样的话怎么办?我是否必须将不同的端口映射到不同的野生蝇,或者是否有其他方式通过外部访问dockerized wildflys,例如。通过containerid左右?
答案 0 :(得分:1)
我现在使用nginx作为反向代理,以便根据要与哪个野生动物交谈的网址来决定
这需要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;
}
}
}
每只野生动物都会获得自己的位置