在我的docker-compose中:
laravel:
image: trackware
links:
- postgis:postgis
ports:
- "80:80"
- "3306:3306"
- "443:443"
- "220:22"
- "8000:8000"
net: "host"
restart: always
volumes:
- C:/H/repositories/pubnub:/share
container_name: laravel
postgis:
image: mdillon/postgis
env_file: .postgis_env
ports:
- "9090:9000"
- "54320:5432"
container_name: postgis如果我运行docker-compose up -d,我会得到这个错误:
Conflicting options: host type networking can't be used with links. This would result in undefined behavior那么,如何在链接到postgis容器时使用net: "host"?postgis容器需要运行pubnub客户端,这将需要高性能的网络来进行实时消息处理,还需要链接到laravel容器来访问数据库。
那么,有什么建议吗?我使用的是docker 1.10.2
发布于 2016-02-26 20:26:47
由于您将postgis端口公开给主机,因此您可以跳过链接并通过localhost:9000连接到它。我相信这是可行的,因为Laravel应用程序驻留在主机网络上,它们将共享这些端口。
发布于 2020-01-20 20:58:28
我们之所以使用link关键字,是因为docker可以在内部进行主机名解析,以便两个完全不同的容器可以相互通信。在您的例子中,如果您没有使用host network并使用link关键字,那么docker将在内部创建一个具有每个容器名称的主机名,以便两个容器可以相互通信。当您使用"host“模式时,network意味着您告诉docker我将使用"hosts”底层网络,因此只需公开本地主机上的端口,我的容器就可以相互通信。
发布于 2016-02-26 20:29:57
我不知道为什么但是..。你不应该使用“主机”驱动程序和端口映射,至少你不会得到预期的结果。在类似"220: 22“的情况下,您将获得映射到主机的22个端口。
据我所知,"Net“已经过时了,请改用"network_mode”。另外,我建议您将docker-compose更新到最新版本,现在是1.6.2。以前的版本存在一些网络问题。
可能是你可以使用"bridge“驱动?在你的情况下,我看不到它不能解决的问题。
https://stackoverflow.com/questions/35650395
复制相似问题