我在服务器上运行2个容器。它们都是具有默认nginx图像的docker容器。
我正在尝试使用Container1作为Container2的反向代理。
Container1位于IP地址172.17.0.3
Container2位于IP地址172.17.0.4
当我卷曲Container1时,我得到了默认的Nginx主页。
我已经编辑了容器2的默认主页,所以它只是
<p> HI </p>
通过ip上的卷曲验证。
在我的服务器etc / hosts文件上,我添加了这一行
172.17.0.3 testapp.net
我的Container1&#39; /etc/nginx/conf.d/default.conf
就是这个
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 80;
server_name testapp.net;
location / {
proxy_pass http://172.17.0.4
}
}
当我curl testapp.net
时,我获得了Container1&n; nginx(基本的hello nginx html文件)的主页,并且没有被定向到Container2。为什么会这样?
答案 0 :(得分:1)
所以你的问题是你只需要修改服务器上的/ etc / hosts文件,而不是修改docker容器中的文件。容器有自己的文件系统和自己的网络,这就是为什么你的修改不起作用。
解决方案是在docker run期间修改容器上的/ etc / hosts。
docker run --add-host testapp.net:172.17.0.3 your_image