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).

  • I installed a docker on osx, now bundler is horrifically slow
  • Proper Docker Setup for Multiple Websites
  • How to connect to the external server from docker container?
  • Why is my docker image size much bigger than my application?
  • Cannot access tomcat8 server running in docker container from host machine
  • Unable to start node app with shell script
  • 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.

  • Django in docker. Can't see logs
  • Docker exec on an intermediate build image doesn't work
  • Copy all project. Docker file command
  • How to make the external host IP address assigned to container hostname?
  • In Docker, can I allow IIS to output detailed errors in a container running an MVC project?
  • Reproducible Docker builds - long-term storage/restoring
  • 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.