Docker-compose network link

Docker ‘link’ feature will be deprecated as new feature ‘networking’ has been released (link). I’m making docker-compose with some containers, and it was fine with ‘link’ to connect each others(without any other commands).

Since I need to change link configuration to network, I have to make docker network before ‘docker-compose up’. Is there any docker-compose feature that making docker network automatically? Or any other way to connecting each containers with some configuration?

  • Docker container name not resolved as DNS for overlay network not reachable
  • docker run long multi-line commands on Windows Host
  • MySQL 2002 Connection Refused - OSX/MySQL/Docker
  • Gitlab CI Runner, DigitalOcean and Docker Compose
  • Docker warning on cgroup swap limit, memory.use_hierarchy
  • Crypt32.dll not found for awssdk in .net core running in docker
  • Centralised configuration of docker-compose services
  • Kong Api's and Plugins are getting removed after kong docker container start and stop
  • Dockerized Neo4j ignoring previous database
  • Dockerized PostgreSQL: psql: FATAL: the database system is starting up
  • Run MongoDB in a Docker container with no volumes
  • How to configure docker and postgres to use pact broker
  • 2 Solutions collect form web for “Docker-compose network link”

    By default, docker-compose with a v2 yml will spin up a network for your project. Any networks you define will also be created unless you explicitly tell it otherwise. Here’s an example docker-compose.yml:

    version: '2'
    
    networks:
      dbnet:
      appnet:
    
    services:
      db:
        image: busybox
        command: tail -f /dev/null
        networks:
        - dbnet
    
      app:
        image: busybox
        command: tail -f /dev/null
        networks:
        - dbnet
        - appnet
    
      proxy:
        image: busybox
        command: tail -f /dev/null
        ports:
        - 80
        networks:
        - appnet
    

    And then when you spin it up, you’ll see that it creates the networks defined:

    $ docker-compose up -d
    Creating network "test_dbnet" with the default driver
    Creating network "test_appnet" with the default driver
    Creating test_app_1
    Creating test_db_1
    Creating test_proxy_1
    

    Note that linking containers also created an implicit dependency, so you may want to use depends_on in your yml to be explicit in any dependencies after removing your link.

    docker-compose creates a default network for your compose project on itself. You only have to migrate your compose projects to version: '2' or version: '3' of the compose yaml format. Please read how to upgrade for more information.

    With version 2 and 3, you don’t have to specify links anymore, as all services will be in the default network if you don’t explicitly specify other networks.

    UPDATE: To make 2 containers talk to each other, you can simply use the service names which will resolve to container IPs. Links are now only required if for some reason a container expects a specific name, e.g. because it is hardcoded.

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