链接到容器时如何使用主机网络?

时间:2016-02-26 11:21:58

标签: laravel docker docker-compose pubnub

在我的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"? laravel容器需要运行pubnub客户端,这需要高性能网络来实现实时消息处理,还需要链接到postgis容器来访问db。

那么,有什么建议吗?我正在使用docker 1.10.2

2 个答案:

答案 0 :(得分:5)

由于您将postgis端口暴露给主机,因此您可以跳过链接并通过localhost:9000连接到它。我相信这会有效,因为laravel应用程序驻留在主机网络中,并且它们将共享这些端口。

答案 1 :(得分:0)

我不知道但是......你不应该使用" host"驱动程序和端口映射,至少你不会得到预期的结果。在这种情况下" 220:22"你将22端口映射到主机。

"净"据我所知,已经过时了,使用" network_mode"代替。 另外我建议你将docker-compose更新到最新版本,现在是1.6.2。以前的版本存在一些网络问题。

您可以使用" bridge"驱动程序?在您的情况下,我无法看到无法解决的问题。