Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker Compose - adding identifier to network name

I trying to create network in docker-compose.vs.debug.yml file:

networks:   myNetwork:     driver: bridge 

But docker adding some identifier:

docker network ls ->

NETWORK ID          NAME                                         DRIVER              SCOPE  0e1fec1a9a30        dockercompose1163770330_myNetwork            bridge              local 

If there any option to name it like this:

NETWORK ID          NAME                                         DRIVER              SCOPE 0e1fec1a9a30        myNetwork                                    bridge              local 

I need it to connect automatically two containers on separate projects.

like image 590
Mark Sabakov Avatar asked Mar 12 '17 16:03

Mark Sabakov


People also ask

How do I add a container to an existing network?

If you want to add a container to a network after the container is already running, use the docker network connect subcommand. You can connect multiple containers to the same network. Once connected, the containers can communicate using only another container's IP address or name.


2 Answers

Per https://docs.docker.com/compose/networking/:

Networks can also be given a custom name (since version 3.5):

version: "3.5" networks:   frontend:     name: custom_frontend     driver: custom-driver-1 

So you could choose to simply name your network myNetwork like this:

networks:   myNetwork:     name: myNetwork     driver: bridge 

Alternatively, if you want your container to join an existing network (I know you say you want docker-compose to create the network for you, but for people reading this question this might be helpful), https://docs.docker.com/compose/networking/ states:

If you want your containers to join a pre-existing network, use the external option:

networks:   default:     external:       name: my-pre-existing-network 
like image 151
Frans Avatar answered Sep 29 '22 18:09

Frans


If you have docker-compose create the network, it will determine the name itself. Normally, it looks at the name of the directory where docker-compose.yml is located, and uses that as a prefix. Based on the name you have shown, it appears that this docker-compose.yml file is in a directory named dockercompose1163770330. It combines this with the myNetwork name you specified, and creates a network named dockercompose1163770330_myNetwork.

If you want to control the exact name of the network, you have two options.

  1. Use a network created outside of docker-compose (an "external" network).
networks:   default:     external:       name: myNetwork 

This implies something else has created the network already. If you don't have such a network already, creating it is easy.

docker network create myNetwork 
  1. (If possible) determine how visual-studio names it paths, and change that path to something static. Whether this is possible, or how, I have no idea. But if you can control dockercompose1163770330 and make it something different that you prefer, then you can predict the network name created from it.
like image 22
Dan Lowe Avatar answered Sep 29 '22 16:09

Dan Lowe