Reparar contenedor docker en estado exited
Anuncio:
Hola! En esta ocasión vamos a ver cómo reparar un contenedor de docker en estado ‘exited’.
A veces hacemos configuraciones en nuestros contenedores que requieren reinicio de un servicio del mismo, por ejemplo, un contenedor con apache, el problema está en que, si la configuración no está correcta, el contenedor no volverá a levantar.
Imaginemos que tenemos una web a la que queremos activarle el SSL, modificamos nuestro fichero de configuración para activarlo en la web y reiniciamos el servicio, pero… no hemos instalado el módulo de apache encargado del SSL 😒. ¡Ups! El contenedor se ha quedado en estado ‘exited’ y no hay forma de arrancarlo, ya que apache no puede levantar por configuración errónea.
En este caso, aunque el contenedor no levante, aún podemos acceder a su sistema de archivos, por lo que si copiamos el fichero problemático a nuestra máquina host, lo modificamos, y volvemos a copiarlo al contenedor docker, restauraremos la configuración anterior al fallo, veamos cómo hacerlo.
Copiar ficheros de docker a la máquina anfitrión
docker cp [contenedor]:[ruta_fichero_docker] [ruta_fichero_host]
Copiar ficheros desde nuestro sistema a contenedor docker
docker cp [ruta_fichero_docker] [contenedor]:[ruta_fichero_docker]
Y listo! Una vez que tenemos el fichero en nuestro sistema host, lo hemos reparado y vuelto a copiar a docker, tendríamos reparado nuestro contenedor, evitando tener que volver a instanciarlo y configurarlo desde cero.
HackSaludos!