一尘不染

使容器只能从本地主机访问

docker

我在Debian Jessie上安装了Docker引擎,并且正在其中运行带有nginx的容器。我的“运行”命令如下所示:

docker run -p 1234:80 -d -v /var/www/:/usr/share/nginx/html nginx:1.9

它工作正常,问题在于现在可以通过访问此容器的内容http://{server_ip}:1234。我想在此服务器上运行多个容器(域),所以我想为其设置反向代理。

我如何确保只能通过反向代理访问容器,而不能直接从反向代理访问容器IP:port?例如。:

http://{server_ip}:1234  # not found, connection refused, etc...
http://localhost:1234  # works fine

//编辑: 为了清楚起见-我不是在问如何设置反向代理,而是如何运行只能从本地主机访问的Docker容器。


阅读 267

收藏
2020-06-17

共1个答案

一尘不染

端口映射中指定所需的主机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
2020-06-17