remove - reiniciar imagen docker
docker: ¿cómo deshabilita el reinicio automático en un contenedor? (3)
Puede iniciar su contenedor con
--restart=unless-stopped
.
Puedo habilitar el reinicio automático con
--restart=always
, pero después de detener el contenedor, ¿cómo desactivo ese atributo?
Normalmente ejecuto un servidor web y normalmente mapeo el puerto 80:
docker run -d --restart=always -p 80:80 -i -t myuser/myproj /bin/bash
Pero hay momentos en que quiero ejecutar una versión más nueva de mi imagen, pero quiero mantener el viejo contenedor.
El problema es que si hay varios contenedores con
--restart=always
, solo se inicia uno de ellos (¿aleatorio?) Porque todos compiten por el puerto 80 en el host.
Puede usar la
--restart=unless-stopped
, como se menciona en @Shibashis, o actualizar la política de reinicio (esto requiere docker 1.11 o más reciente);
Consulte la
documentación para la
docker update
Docker
y las
políticas de reinicio de Docker
.
docker update --restart=no my-container
que actualiza la política de reinicio de un contenedor existente (
my-container
)
Si tiene un enjambre reiniciando los contenedores, el enjambre reiniciará cualquier contenedor que detenga o rm, independientemente de la opción de reinicio. Esa es una característica, no un error.
Asegúrese de no ejecutar un servicio que olvidó:
docker service ls
Entonces, puedes detener el servicio
docker service rm <service id discovered with previous command>