码头版本:17.05.0-行政长官
我使用docker-compose.yml手动运行了一些容器,但最近在新项目中,我创建了基于本教程的本教程文件。但是,当我在宿主中运行以下命令时:
docker network create --driver bridge reverse-proxy
docker-compose up 和
docker run -d --name nginx-reverse-proxy --net reverse-proxy -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy代理不适用于旧容器,我无法使用该项目的子域(它们“停止工作”)。
那该怎么办呢?
发布于 2017-06-23 20:20:33
用--net参数在docker run ...中进行了实验,并使用docker network inspect network_name进行了实验。我得到了许多不同的结果,如欢迎来到nginx或http 404 not 或http 503暂时不可用,并得出以下结论:
--net命令,则容器在桥网络中运行。--net xxx命令只在'xxx‘网络中运行(而不是在桥中!)--net xxx --net yyy,那么容器只在'yyy‘中运行(根本没有'xxx’!)桥接是集装箱间通信的默认码头网络.
因此,在运行代理时,我们只使用--net reverse-proxy,然后使用代理容器,看不到桥,无法与其他容器通信。如果我们尝试使用--net reverse-proxy --net bridge (在类似于一行的-p中使用两次或更多次),那么容器将只连接到最后一个网络。
所以解决办法是..。以下列方式运行代理:
docker run -d --name nginx-reverse-proxy -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
docker network connect reverse-proxy reverse-proxy正如您所看到的,我们根本没有使用--net命令。network connect命令允许容器连接使用多个网络。当您执行docker network inspect reverse-proxy和docker network inspect bridge时,我们将看到nginx-反向代理在两个网络中:)
https://stackoverflow.com/questions/44729386
复制相似问题