Dennis Winter
Dennis Winter

Reputation: 2037

docker-compose can't connect to external network

I've created an external overlay-network:

docker network create --driver overlay --subnet=10.0.9.0/24 mynetwork

The network creation succeeds:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
37295f249f91        bridge              bridge              local               
c2ec03c99888        docker_gwbridge     bridge              local               
33dd13c9686d        host                host                local               
27goixjy0jys        ingress             overlay             swarm               
75508732fab2        none                null                local               
ef6fti3kq6w4        mynetwork           overlay             swarm  

When I try to place containers into it in my docker-compose.yml, the creation of the services fails with

$ docker-compose up
Creating service-lb

ERROR: for service-lb  network mynetwork not found
ERROR: Encountered errors while bringing up the project.

My docker-compose.yml looks like this:

version: "2"
services:
    service-lb:
        image: myreg:5000/myorg/service-lb:latest
        ports:
        - "0.0.0.0:10080:80"
        dns_search:
        - .
        networks:
        - mynetwork
networks:
    mynetwork:
        external: true

Is docker-compose unable to deal with overlay-networks in the scope of a swarm?

Versions:
docker-compose v1.8.0-rc2
docker 1.12.0-rc5

Upvotes: 5

Views: 5118

Answers (2)

Mathieu Rollet
Mathieu Rollet

Reputation: 2354

This should now be possible. From https://docs.docker.com/compose/networking :

In v2.1+, overlay networks are always attachable. Starting in Compose file format 2.1, overlay networks are always created as attachable, and this is not configurable. This means that standalone containers can connect to overlay networks. In Compose file format 3.x, you can optionally set the attachable property to false.

You might need to declare your network in docker-compose with these properties :

external: true
driver: overlay

Upvotes: 0

dnephin
dnephin

Reputation: 28040

docker-compose is incompatible with swarm mode because it still uses the container API, and swarm mode requires use of the services API. I believe overlay networks in 1.12 only work with swarm mode. So yes, they are incompatible.

Upvotes: 1

Related Questions