Как использовать хост-сеть при соединении с контейнером?

В моем докере-сочинении:

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

Итак, как использовать net: "host" при связывании с контейнером postgis? Контейнер laravel должен запускать клиент pubnub, для которого требуется высокопроизводительная сеть для обработки сообщений в режиме реального времени, а также для связи с контейнером postgis для доступа к db.

Итак, какие-нибудь советы? Я использую докер 1.10.2

Ответ 1

Поскольку вы открываете порты postgis для хоста, вы можете пропустить соединение и подключиться к нему через localhost:9000. Я считаю, что это будет работать, так как приложение Laravel находится в сети хоста, и они будут использовать эти порты.

Ответ 2

Я не знаю, но... Вы не должны использовать драйвер "хост" и сопоставление портов, по крайней мере, вы не получите ожидаемого результата. В случае, например "220: 22", вы получите 22 порта, сопоставленные с главной машиной.

"Net" устарела, насколько мне известно, вместо этого используйте " network_mode". Также я бы рекомендовал вам обновить docker-compose до последней версии, теперь это 1.6.2. Предыдущие версии имели некоторые проблемы с сетью.

Может быть, вы можете использовать " bridge" драйвер? В вашем случае я не вижу проблем, которые он не может решить.