Intento crear una red en el archivo docker-compose.vs.debug.yml:
networks: myNetwork: driver: bridgePero la ventana acoplable agrega algún identificador:
ventana acoplable red ls ->
NETWORK ID NAME DRIVER SCOPE 0e1fec1a9a30 dockercompose1163770330_myNetwork bridge localSi hay alguna opción para nombrarlo así:
NETWORK ID NAME DRIVER SCOPE 0e1fec1a9a30 myNetwork bridge localLo necesito para conectar automáticamente dos contenedores en proyectos separados.
Por https://docs.docker.com/compose/networking/ :
A las redes también se les puede dar un nombre personalizado (desde la versión 3.5):
version: "3.5" networks: frontend: name: custom_frontend driver: custom-driver-1
Por lo tanto, puede elegir simplemente nombrar su red myNetwork de esta manera:
networks: myNetwork: name: myNetwork driver: bridge Alternativamente, si desea que su contenedor se una a una red existente (sé que quiere que docker-compose cree la red por usted, pero para las personas que lean esta pregunta, esto podría ser útil), https://docs.docker.com /compose/networking/ estados:
Si desea que sus contenedores se unan a una red preexistente, use la opción
external:networks: default: external: name: my-pre-existing-network
Si tiene docker-compose para crear la red, determinará el nombre en sí. Normalmente, mira el nombre del directorio donde se encuentra docker-compose.yml y lo usa como prefijo. Según el nombre que ha mostrado, parece que este archivo docker-compose.yml está en un directorio llamado dockercompose1163770330 . Combina esto con el nombre myNetwork que especificó y crea una red llamada dockercompose1163770330_myNetwork .
Si desea controlar el nombre exacto de la red, tiene dos opciones.
networks: default: external: name: myNetworkEsto implica que algo más ya ha creado la red. Si aún no tiene una red de este tipo, crearla es fácil.
docker network create myNetworkdockercompose1163770330 y convertirlo en algo diferente que prefiera, entonces puede predecir el nombre de red creado a partir de él.Supongo que usa un dcproj VS2017. Resolví esto creando la red manualmente en el proyecto dcproj como PreBuildEvent. Agregue un objetivo de compilación previa al archivo .dcproj:
<Target Name="PreBuild" BeforeTargets="PreBuildEvent"> <Exec Command="echo Creating external docker network" /> <Exec Command="docker network create customnetwork" IgnoreExitCode="true" /> </Target>Luego, en sus archivos docker-compose puede especificar una red externa:
networks: default: external: name: customnetworkRequiere que inicie dcproj antes que otros proyectos o agregue el mismo prebuild exec a todos los proyectos que deberían compartir la red.