Can I use Docker-Compose to create Networks without Containers

I’ve been playing with Docker-Compose for the last few days to see if it would simplify my Docker Container and Network building process.

I’m pretty happy with it, but ran into a problem when I wanted to create a few ‘Networks’ that didn’t get used by any ‘Services’ (yet).

  • Using Docker via windows console: includes invalid characters for a local volume name
  • convert Dockerfile to Bash script
  • Set up docker remote execution on windows
  • Redis Mass Insertion - Errors out
  • oauth2client.client.AccessTokenRefreshError: invalid_grant Only in Docker
  • Why is nginx returning a 502 when doing a `uwsgi_pass` to a linked docker container?
  • The reason I want this behavior was to have a Docker-Compose file to create my local fabric of ‘Private’ network and ‘Public’ Network. And a separate Docker-Compose for each of my projects that utilize those already created ‘external’ networks.

    I noted that I was able to just specify a dummy container to initialize the creation of the Networks, but it seemed unnecessary. e.g..

    version: '2'
    services:
      # Dummy Service
      dummy:
        image: busybox
        container_name: dummy
        hostname: dummy
        networks:
          private:
    
    networks:
      # Private Network for all Services (across Projects)
      private:
        driver: bridge
        ipam:
          driver: default
          config:
          - subnet: 172.18.0.0/24
            gateway: 172.18.0.1
    

    Is there a setting/flag that I’m overlooking, or is there currently no way to use Docker-Compose to create Networks without Containers.

    Additionally, am I just approaching this incorrectly?

    Essentially I’d like to have a network that live on regardless of what containers join/leave it.

  • Docker mount works only on localhost
  • Vagrant or Docker for environment development
  • Using Docker, how do you execute PHP composer commands?
  • How to configure nginx to forward all unhandled domains to particular service?
  • TravisCI build succeeds even when tests fail
  • How to force a docker container in IBM Bluemix to connect a volume?
  • One Solution collect form web for “Can I use Docker-Compose to create Networks without Containers”

    There’s a check inside of docker-compose for whether the network is used, and if it’s unused, it skips creating the network:

    $ cat docker-compose.net-only.yml
    version: '2'
    
    networks:
      test1:
      test2:
    
    $ docker-compose -f docker-compose.net-only.yml --verbose up
    .....
    WARNING: compose.network.from_services: Some networks were defined but are not used by any service: test1, test2
    .....
    
    $ docker network ls | grep test
    
    $
    

    I’d recommend doing this as a small shell script, calling docker network create instead of trying to use docker-compose for this task.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.