我在Debian Jessie上安装了Docker引擎,并且正在其中运行带有nginx的容器。我的“运行”命令如下所示:
docker run -p 1234:80 -d -v /var/www/:/usr/share/nginx/html nginx:1.9
它工作正常,问题在于现在可以通过访问此容器的内容http://{server_ip}:1234。我想在此服务器上运行多个容器(域),所以我想为其设置反向代理。
http://{server_ip}:1234
我如何确保只能通过反向代理访问容器,而不能直接从反向代理访问容器IP:port?例如。:
IP:port
http://{server_ip}:1234 # not found, connection refused, etc... http://localhost:1234 # works fine
//编辑: 为了清楚起见-我不是在问如何设置反向代理,而是如何运行只能从本地主机访问的Docker容器。
在端口映射中指定所需的主机IP
docker run -p 127.0.0.1:1234:80 -d -v /var/www/:/usr/share/nginx/html nginx:1.9
如果要执行反向代理,则可能希望将它们与反向代理一起全部放在用户定义的网络上,然后所有内容都在容器中并且可以在其内部网络上访问。
docker network create net docker run -d --net=web -v /var/www/:/usr/share/nginx/html nginx:1.9 docker run -d -p 80:80 --net=web haproxy