以下是我希望从外部容器连接到的容器配置的构成文件(在另一个构成文件中定义):
version: '3.5'
services:
service-to-connect-to:
build: .
networks:
- my-external-network
networks:
my-external-network:
external: true
和另一个组成文件,其中包含我要从中连接到service-to-connect-to
的容器的配置:
version: "3.5"
services:
service-to-connect-from:
build: .
我试图通过以下域连接到service-to-connect-to
:
service-to-connect-to
service-to-connect-to.my-external-network
my_external_network.service-to-connect-to
但它们都没有起作用。
我错了吗?
谢谢
答案 0 :(得分:4)
首先,必须将两个服务都添加到同一网络才能连接它们。因此,后者的撰写文件应类似于
version: "3.5"
services:
service-to-connect-from:
build .
networks:
- my-external-network
networks:
my-external-network:
external: true
现在,两个服务都在同一网络上,它们可以使用容器的名称相互查找。默认情况下,容器名称与服务名称相同,但docker compose还会在其前面加上项目名称作为前缀,默认情况下,该名称是组成文件所在的目录名称。如果您首先通过docker-compose up -d
启动服务,然后查看通过运行docker ps
来命名容器的方式,则可以看到此信息。容器名称可以是project1_service-to-connect-to
。使用此名称,您可以从其他服务连接。
如果愿意,还可以使用container_name
选项为服务显式设置容器的名称。使用时,compose不再是容器名称的前缀。
答案 1 :(得分:0)
这对于compose是不可能的,因为第二个docker-compose文件将使用当前目录名称创建一个不同的网络,然后您的这两个服务将位于两个不同的docker网络中,并且无法彼此通信。
因此您可以做两件事:
1.为这两种服务使用相同的网络(最好是合并一个组合文件)。
2.使用docker swarm stacks,您可以在其中使用Dim rng As Range, destRow As Long
Dim shtSrc As Worksheet, shtDest As Worksheet
Dim c As Range '-- this is used to store the single cell in the For Each loop
Dim d As Range '-- this is used to store the single cell in the For Each loop
Set shtSrc = Sheets("Projects") ' Sets "Projects" sheet as source sheet
Set shtDest = Sheets("Look Ahead") 'Sets "Look Ahead" sheet as destination sheet
destRow = 5 'Start copying to this row on destination sheet
' >> Set range to search for dates in Look Ahead period <<
Set rng = Application.Intersect(shtSrc.Range("J:Q"), shtSrc.UsedRange)
' >> Look for matching dates in columns Q and S on Projects Sheet <<
For Each c In rng.Cells
If (c.value >= startDate And c.value <= endDate) Or _
(c.Offset(0, 2).value >= startDate And c.Offset(0, 2).value <= endDate) Then ' Does date fall between start and end dates? If Yes, then copy to destination sheet
End If
Next
For Each d In rng.Cells
If (d.value = ComboBox2) Or _
(d.Offset(0, 2).value = ComboBox2) Then
shtSrc.Range("C" & c.Row).Copy shtDest.Range("B" & destRow)
shtSrc.Range("G" & c.Row).Copy shtDest.Range("A" & destRow)
shtSrc.Range("J" & d.Row).Copy shtDest.Range("E" & destRow)
shtSrc.Range("Q" & c.Row).Copy shtDest.Range("C" & destRow)
shtSrc.Range("S" & c.Row).Copy shtDest.Range("D" & destRow)
destRow = destRow + 1
' > Ends search <
End If
Next
https://docs.docker.com/v17.09/engine/userguide/networking/configure-dns/
注意:服务链接也无济于事,因为compose在运行第二个文件时会创建不同的网络。