Lanzo un contenedor docker desde una imagen con el siguiente comando:
$ docker run -d myimage /bin/bash -c "mycommand"
Cuando "mycommand"
termina, el contenedor se detiene (supongo que está detenido), pero no se borra, porque puedo verlo con este comando:
$ docker ps -a
¿Hay alguna forma de acceder a restart
este contenedor con los mismos parámetros y mantener los datos generados por mycommand
?
Respuestas:
Sí, cuando el comando inicial finaliza su ejecución, el contenedor se detiene.
Puede iniciar un contenedor detenido usando:
docker start container_name
Si desea ver el resultado de su comando, debe agregar
-ai
opciones:docker start -ai container_name
PD. hay un
docker restart container_name
pero que se usa para reiniciar un contenedor en ejecución; creo que ese no es su caso.fuente
docker exec -it container_name bash
. Cuando ejecuté el comando desde el interior del contenedor, pude ver por qué fallaba la implementación inicial de mi script y lo arreglé.start
consleep
? No puedo llegar a un punto en el que pueda correrexec
Primero,
$ docker ps -a
muestra todos los contenedores (los que están en ejecución y los detenidos), por lo que esa es la razón por la que no ve su contenedor detenido en la lista.En segundo lugar, puede iniciar fácilmente la ejecución de un contenedor detenido:
Una vez que se ha iniciado el contenedor, puede ejecutar su comando de la siguiente manera:
Las cosas que cree en su contenedor permanecerán dentro de su contenedor mientras exista. Si desea conservar los datos incluso si se elimina su contenedor, puede usar un volumen .
fuente
Debería ser
fuente
restart
es para un contenedor que ya se está ejecutando