我在家里的 Ubuntu 服务器 (14.04 Trusty Tahr) 上的 Docker 容器中运行不同的服务。我目前的设置如下:
- 詹金斯 jenkins.slarti
- gitlab.slarti 下的 Gitlab 和 Leanlabs.io
- servlet.slarti (apache tomcat) 下的 Java Servlet Web 服务器
- “普通”Web 服务器和 web.slarti (nginx)
这些域是虚拟主机的,我已经设置了 nginx 代理。
Nginx-proxy docker 运行:
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
正常的网络服务器 docker 运行:
sudo docker run --name nginx1 -P -d --expose 80 -e VIRTUAL_HOST=web.slarti nginx
Gitlab 和 Leanlabs.io docker 运行:
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 运行:
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 http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker/
目前我无法 ping web.slarti、servlet.slarti 等。如果我在浏览器中输入这些域的 URL,我也无法访问这些域。
我可以通过 slarti:8888 访问 Apache Tomcat,但我想通过 servlet.slarti 访问它,但由于我没有 DNS 设置而失败。
我需要做什么才能到达子域 web.slarti、servlet.slarti 等?如何正确设置反向代理以便能够访问域?我该如何配置 DNS?