Yon*_*Nir -1 docker docker-compose
在 docker-compose 文件中定义服务时,何时使用host.docker.internal主机的 ip,何时需要使用容器的名称?
所有可能的通信流程如下所示:
(1):非容器化进程与容器通信
(2):容器与另一个容器通信
(3) : (1) 的相反方向
(1):容器必须将端口转发给主机,以便非容器化进程可以访问它
services:
c1:
...
ports:
- hostport:containerport
Run Code Online (Sandbox Code Playgroud)
(2): 容器c1只使用服务名称(容器名称-c2)与c2通信
(3):容器c2必须使用主机( hostname -i)的私有IP。
对于(3),有几点:
Host 网络范围不能与 Docker 网络范围重叠,否则 Docker 路由器不会将请求抛出。
主机不得启用阻止非容器化进程使用的端口的防火墙。
如果您使用的是 Docker For Desktop,host.docker.internal则为主机私有 IP 的别名。那么你就不需要用 来计算主机的私有IP hostname -i。
| 归档时间: |
|
| 查看次数: |
2675 次 |
| 最近记录: |