我在家里的Ubuntu服务器(14.04 Trusty Tahr)上运行Docker Containers中的不同服务。我目前的安装程序如下:
这些域名是虚拟主机,我已经设置了nginx代理。
Nginx-proxy docker run:
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
詹金斯码头运行:
docker run -d --name jenkinsci --expose 8080 -e VIRTUAL_HOST=jenkins.slarti -e VIRTUAL_PORT=8080 jenkins
普通网络服务器泊坞窗运行:
sudo docker run --name nginx1 -P -d --expose 80 -e VIRTUAL_HOST=web.slarti nginx
Gitlab& leanlabs.io docker run:
docker run -d --link kanban_redis:kanban_redis -p 80:80 -e KANBAN_SERVER_HOSTNAME="http://localhost" -e KANBAN_GITLAB_URL="http://mygitlab.com" -e KANBAN_REDIS_ADDR="kanban_redis:6379" --expose 80 -e VIRTUAL_HOST=gitlab.slarti leanlabs/kanban:1.4.0
Apache Tomcat docker run:
docker run -it --rm -p 8888:8090 -e VIRTUAL_HOST=servlet.slarti tomcat:8.0
我根据本指南进行了设置http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker
目前我无法ping通web.slarti,servlet.slarti等。如果我在浏览器中输入他们的网址,我也无法访问这些域名。
我可以通过slarti:8888访问Apache Tomcat但是我想通过servlet.slarti到达它,但由于我没有DNS设置而失败。
我需要做些什么才能到达子域名web.slarti,servlet.slarti等?如何正确设置反向代理以便我可以访问域?我如何配置DNS?
答案 0 :(得分:1)
我不是网络专家。但在阅读完帖子后,您确实需要这样的DNS配置:
A -> slarti (or IP)
CNAME jenkins.slarti -> slarti
CNAME gitlab.slarti -> slarti
CNAME servlet.slarti -> slarti
CNAME web.slarti -> slarti
这就是我将子域重定向到Docker容器所做的工作。
如果没有正确的DNS配置,则无法访问您的子域。
使用此DNS配置,每次请求 gitlab.slarti 时,实际上都会到达Nginx,而Nginx会将您重定向到正确的Docker容器(如果 VIRTUAL_HOST 环境变量配置为 gitlab.slarti )。
答案 1 :(得分:0)
*.example.com
的A记录。例如:
docker run -d --name jenkinsci --expose 8080 -e VIRTUAL_HOST=jenkins.slarti -e VIRTUAL_PORT=8080 jenkins