Solución al error 'ERROR: Network "container_network_name" needs to be recreated'
En algunas ocasiones cuando estamos cambiando algunas cosas en nuestro entorno de docker se pueden presentar algunos problemas con objetos ya creados previamente. Este es el caso de las redes (networks) ya que si cambiamos algunas cosas de una red previamente creada podemos obtener un error como el siguiente:
ERROR: Network "container_network" needs to be recreated
En donde container_network será el contender y el nombre de la red que has modificado. En primer lugar, puedes identificar la red que está causando el problema con el siguiente comando.
server@user$ docker network ls
NETWORK ID NAME DRIVER SCOPE
ed762db5cd98 bridge bridge local
ccf092c4754a host host local
a48dcd37e427 container_network bridge local
Si la red no está siendo usada bastaría simplemente hacer prune
para eliminar aquellas no utilizadas.
docker network prune
Si esto no funciona puedes intentar borrándola directamente con el siguiente comando.
docker network rm a48dcd37e427
Siempre es recomandable para cualquiera de los dos comandos vistos anteriormente bajar los contenedores actuales en el entorno en donde estés trabajando. De lo contrario obtendrás un error como el siguiente:
error while removing network: network X has active endpoints
Basta con bajar y remover todos los contenedores relacionados con la red usada.
docker-compose down
Esto asegurará que las redes eliminadas no estén siendo usadas. Después de esto, podrás volver a levantar tu entorno y el error no aparecerá.