How to use host network while linking to a container?
In my 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
if I run
docker-compose up -d I get this error:
Conflicting options: host type networking can't be used with links. This would result in undefined behavior
So, how would I use
net: "host" while linking to postgis container?
laravel container needs to run pubnub client, which will need high-performance networking for real time messages handling, and also it needs to link to
postgis container to access db.
So, any advice? I am using docker 1.10.2
2 Solutions collect form web for “How to use host network while linking to a container?”
Since you expose postgis ports to host, you can skip linking and connect to it trough localhost:9000. I believe this will work since laravel application resides in host network and they will share those ports.
I dunno reason but… You shouldn’t use “host” driver and port mapping, at least you wouldn’t get expected result. In case like this “220:22” you’ll get 22 port mapped to the host machine.
“Net” is outdated as far as I know, use “network_mode” instead.
Also I would recommend you to update docker-compose to the latest version, now is 1.6.2. Previous versions had some networking problems.
May be you can use “bridge” driver? In your case, I can’t see problems which it couldn’t resolve.