我有一个带有apache2的Debian服务器。我可以通过IP地址访问它。
我想要的是能够通过类似“myIpAddress / container1”的URL从外部访问其中的容器(其中包含apache2 serveur)。我目前所拥有的只是从Debian服务器访问这些容器的权限。
我考虑过使用代理反向,但是我无法使其正常工作。
谢谢您的帮助! :-)
最佳答案
将docker容器的端口映射到主机端口,然后从<host-ip>:port
访问docker容器。
docker run -p host-port:container-port image
例如,使用上述命令运行容器时,将使该容器在127.0.0.1可用
docker run -p 80:5000 training/webapp
更新:
使用NGINX设置反向代理
本示例将普通NGINX容器用作站点A,将普通Apache服务器用作站点B。
docker run -d \
--name nginx-proxy \
-p 80:80 \
-v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
docker run -d --name site-a -e VIRTUAL_HOST=a.example.com nginx
docker run -d --name site-b -e VIRTUAL_HOST=b.example.com httpd
注意:确保已设置DNS以将子域转发到运行nginx-proxy的主机。如果您使用的是AWS,最简单的方法是使用Route53。
对于本地测试,通过在/ etc / hosts文件中添加条目来映射子域以解析为localhost。
127.0.0.1 a.example.com
127.0.0.1 b.example.com
引用文献
关于apache - 将包含服务器的不同容器放入同一服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46911090/