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



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

我正在使用三个docker-compose.yml文件。一个用于三个nginx服务,一个用于第一个web应用程序和数据库,最后一个用于第二个web应用和数据库。码头工人集装箱,每个集装箱和用途如下。

  1. nginx gen
  2. nginx莱特森密码
  3. nginx
  4. web服务器1
  5. 数据库1(仅适用于web服务器1(
  6. web服务器2
  7. 数据库2(仅适用于web服务器2(

现在开始提问。

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

最新更新