场景:每个服务都有自己运行的一套环境,分别都有自己的nginx ;我们像用A容器的Nginx 的项目访问到B容器下的nginx项目内容,并且在自定义的网络下面
首先我们可以自定义一个网络:docker默认桥接:
docker network create apollo_network
然后运行你得容器,指定网络:(--network apollo_network 参数)
比如:
docker run -v E:\web\sheng\core\timetracker:/var/www/html -p 8181:8080 -d --network apollo_network --name apollo_core registry.git.asc-vision.de/sheng/apollo_core
docker run -v E:\web\sheng\tt\tm-timetracker:/var/www/html -p 8282:80 -d --network apollo_network --name apollo_timetracker_module registry.git.asc-vision.de/sheng/apollo_timetracker_module
然后我用第一个访问第二个:
为什么记录这个呢。是因为我之前一直用的nginx 默认的80端口,使用容器名称或者ip的时候 都可以ping通,但是我的nginx配置PHP项目的入口文件是在nginx默认的项目文件路径(var/www/html)的 public下面(index);出现了一个情况:curl对方容器的时候一直访问的是根目录(var/www/html),并没有访问到(var/www/html/public),nginx 的配置好像失去了作用,所以我换了端口就解决了这个问题,
nginx的配置:
但是今天我也并没有发现这个问题使用80导致这个问题的原因所在……