容器之间的Docker服务名称交互

容器之间的Docker服务名称交互,docker,docker-compose,Docker,Docker Compose,只是一个新手docker用户的一些问题 我正在使用三个docker compose.yml文件。一个用于三个nginx服务,一个用于第一个web应用程序和数据库,最后一个用于第二个web应用程序和数据库。docker容器,每个容器和用途如下 nginx gen nginx letsencrypt nginx web服务器1 数据库1(仅适用于web服务器1) 网络服务器2 数据库2(仅适用于web服务器2) 现在开始提问 在我的第二个和第三个docker compose.yml文件中,我使用了相

只是一个新手docker用户的一些问题

我正在使用三个
docker compose.yml
文件。一个用于三个nginx服务,一个用于第一个web应用程序和数据库,最后一个用于第二个web应用程序和数据库。docker容器,每个容器和用途如下

  • nginx gen
  • nginx letsencrypt
  • nginx
  • web服务器1
  • 数据库1(仅适用于web服务器1)
  • 网络服务器2
  • 数据库2(仅适用于web服务器2)
  • 现在开始提问

  • 在我的第二个和第三个
    docker compose.yml
    文件中,我使用了相同的服务名称,并且我在应用程序中遇到了一个问题。Web服务器1有时会看到数据库1,但有时会切换到数据库2。这是因为我使用服务名称作为应用程序配置中数据库主机的配置。
    docker compose.yml
    中的服务名称是否应唯一
  • 我们可以随意命名docker服务吗?这个有命名约定吗
  • 为docker内部的应用程序设置主机配置的最佳做法是什么?我们应该使用它的容器IP吗?还是应该使用服务名称
  • 是的,如果他们在同一个网络中
  • 随你的便
  • IP绝对没有完成。Docker部分是为了在多台机器上运行您的应用程序,如果您使用kubernetes之类的容器编排工具,IP可能会不断变化。通过主机的servicename来引用主机是可以的(只要它们在同一个网络中),但理想情况下,您应该为服务发现(Eureka、Zuul、Consor等)创建一个容器,并让每个服务在其中注册为服务。您的第一个问题已经解决了通过servicename引用服务时可能遇到的问题
  • 是的,如果他们在同一个网络中
  • 随你的便
  • IP绝对没有完成。Docker部分是为了在多台机器上运行您的应用程序,如果您使用kubernetes之类的容器编排工具,IP可能会不断变化。通过主机的servicename来引用主机是可以的(只要它们在同一个网络中),但理想情况下,您应该为服务发现(Eureka、Zuul、Consor等)创建一个容器,并让每个服务在其中注册为服务。您的第一个问题已经解决了通过servicename引用服务时可能遇到的问题