Estoy tratando de ejecutar un comando único para inicializar un esquema de base de datos en un nuevo enjambre docker que se implementa con el nuevo soporte de 1.13 para archivos docker-compose.
El enjambre tiene la siguiente red:
$ docker network ls NETWORK ID NAME DRIVER SCOPE ... b7dptlu8zyqa vme_internal overlay swarm ... definido en el archivo docker-compose.yml como:
networks: internal:El comando que ejecuto es
docker run --rm --network vme_internal app:0.1 db upgrade con el prefijo extra vme_ proveniente del nombre que le di a la pila al implementar. Ahora, cuando ejecuto el comando anterior, obtengo:
docker: Error response from daemon: Could not attach to network vme_internal: rpc error: code = 7 desc = network vme_internal not manually attachable.¿Cómo puedo conectar la red?
No pude encontrar ninguna información específica sobre conectable en la red de Docker e intenté agregar un atributo attachable a la definición de red sin éxito.
Usando el compositor
Desde composer v3.2 , es posible configurar la propiedad adjuntable a través del archivo del compositor usando la palabra clave attachable como:
networks: mynet1: driver: overlay attachable: true Uso docker network create
Desde Docker Engine API v1.25, es posible crear una red y hacerla conectable usando el parámetro --attachable como:
docker network create --driver overlay --attachable my-overlay-networkPara actualizar un servicio docker que ya se está ejecutando:
Cree una red de superposición acoplable:
docker network create --driver overlay --attachable my-attachable-overlay-network Elimine la pila de red con una red superpuesta "conectable" deshabilitada (en este ejemplo llamada: my-non-attachable-overlay-network ):
docker service update --network-rm my-non-attachable-overlay-network myserviceAgregue la pila de red con una red superpuesta "conectable" habilitada:
docker service update --network-add my-attachable-overlay-network myserviceDe forma predeterminada, las redes superpuestas creadas con el nuevo modo de enjambre no se pueden usar con contenedores que no se ejecuten desde el enjambre. La versión 1.13 le permite alternar esta configuración, así que asegúrese de haber actualizado. Debe crear la red con la bandera adjunta. Tampoco pude hacer que esto funcionara en un trabajador de enjambre, el nodo necesitaba ser promovido a un administrador de enjambre.