两个Laravel应用程序在两个Docker容器中

8nuwlpux  于 2023-11-20  发布在  Docker
关注(0)|答案(2)|浏览(197)

我创建了两个Laravel应用程序,每个应用程序都在自己的Docker容器中。它们有一个公共网络(随后,一个应用程序必须通过别名通过网络访问另一个应用程序)。
问题是:在浏览器中,当页面刷新时,使用相同的IP地址,打开一个或第二个应用程序。
Docker版本24.0.6,构建版本ed 223 bc
有谁能解释这个奇怪的行为吗?为什么当我刷新页面时,输出会循环到第二个应用程序?
请参阅以下两个应用程序的Docker设置:x1c 0d1x
当页面更新时,我们在浏览器中看到奇怪的镜像。每次更新后,输出都会切换到第二个应用程序。IP地址不会改变。



在第一个应用程序的Docker Desctop nginx日志中,当我更新secod浏览器时,我没有看到任何请求。反之亦然。

例如docker-compose.yml(第二个是相同的,只在容器名称和IP地址不同)

version: '3.8'

services:

  nginx:
    container_name: app1_nginx
    image: nginx:latest
    volumes:
      - ./:/var/www
      - ./_docker/nginx/conf.d:/etc/nginx/conf.d
    ports:
      - "127.0.0.101:80:80"
    depends_on:
      - app
    networks:
      laravel:

  app:
    container_name: app1_app
    build:
      context: .
      dockerfile: _docker/app/Dockerfile
    volumes:
      - ./:/var/www
    networks:
      laravel:

networks:
  laravel:
    name: "laravel-shared"

字符串

k2arahey

k2arahey1#

根据app 1的描述和提供的docker-compose.yml,您似乎试图将两个不同的应用程序绑定到两个不同的IP地址,但在同一个主机端口(80)上。行“127.0.0.101:80:80”表明了这一点。如果第二个应用程序也具有类似的配置,但具有不同的IP,这可能是问题的原因。
我的建议是:
与其使用不同的IP地址,不如考虑将每个应用程序绑定到127.0.0.1上的不同端口。例如,将app 1绑定到127.0.0.1:8080,将app 2绑定到127.0.0.1:8081。这是区分同一主机上的应用程序的更标准的方法。

vjrehmav

vjrehmav2#

我找到了一个解决方案。问题是网络设置不正确。我不能确切地说docker是如何工作的,为什么网站会周期性地变化,但似乎原因是使用了相同的网络。
我添加了另一个共享网络,现在一切都正常工作。此外,我在配置中添加了别名,现在每个应用程序都可以使用该别名访问另一个。还在浏览器中访问的主机文件中添加了别名:

127.0.0.201 app1.local
127.0.0.202 app2.local

字符串
新的配置示例(第二个相同,仅在容器名称和IP地址上有差异):

version: '3.8'

services:

  nginx:
    container_name: app1_nginx
    image: nginx:latest
    volumes:
      - ./:/var/www
      - ./_docker/nginx/conf.d:/etc/nginx/conf.d
    ports:
      - "127.0.0.201:80:80"
    depends_on:
      - app
    networks:
      laravel:
      common:
        aliases:
          - app1.local
  app:
    container_name: app1_app
    build:
      context: .
      dockerfile: _docker/app/Dockerfile
    volumes:
      - ./:/var/www
    networks:
      laravel:
      common:

networks:
  laravel:
  common:
    name: "app-shared"

相关问题