Descripción

Actualizar un servicio

API 1.24+ El cliente y la API del demonio deben ser al menos 1,24 para usar este comando. Utilizar el docker version comando en el cliente para verificar las versiones de la API del demonio y del cliente.

Enjambre Este comando funciona con el orquestador Swarm.

Uso

docker service update [OPTIONS] SERVICE

Opciones

Nombre, taquigrafía Defecto Descripción
--args Args de comando de servicio
--config-add API 1.30+
Agregar o actualizar un archivo de configuración en un servicio
--config-rm API 1.30+
Eliminar un archivo de configuración
--constraint-add Agregar o actualizar una restricción de ubicación
--constraint-rm Eliminar una restricción
--container-label-add Agregar o actualizar una etiqueta de contenedor
--container-label-rm Quitar la etiqueta de un contenedor por su llave
--credential-spec API 1.29+
Especificación de credenciales para la cuenta de servicio administrada (solo Windows)
--detach , -d API 1.29+
Salga de inmediato en lugar de esperar a que el servicio converja
--dns-add API 1.25+
Agregar o actualizar un servidor DNS personalizado
--dns-option-add API 1.25+
Agregar o actualizar una opción de DNS
--dns-option-rm API 1.25+
Eliminar una opción de DNS
--dns-rm API 1.25+
Eliminar un servidor DNS personalizado
--dns-search-add API 1.25+
Agregar o actualizar un dominio de búsqueda DNS personalizado
--dns-search-rm API 1.25+
Eliminar un dominio de búsqueda de DNS
--endpoint-mode Modo de punto final (vip o dnsrr)
--entrypoint Sobrescribir el PUNTO DE ENTRADA predeterminado de la imagen
--env-add Agregar o actualizar una variable de entorno
--env-rm Quitar una variable de entorno
--force API 1.25+
Forzar la actualización incluso si ningún cambio lo requiere
--generic-resource-add Agregar un recurso genérico
--generic-resource-rm Eliminar un recurso genérico
--group-add API 1.25+
Agregar un grupo de usuarios complementario adicional al contenedor
--group-rm API 1.25+
Eliminar un grupo de usuarios suplementarios agregado anteriormente del contenedor
--health-cmd API 1.25+
Comando para ejecutar para verificar la salud
--health-interval API 1.25+
Tiempo entre ejecutar la verificación (ms | s | m | h)
--health-retries API 1.25+
Fallos consecutivos necesarios para informar sobre problemas de salud
--health-start-period API 1.29+
Período de inicio para que el contenedor se inicialice antes de contar los reintentos hacia inestable (ms | s | m | h)
--health-timeout API 1.25+
Tiempo máximo para permitir que se ejecute una verificación (ms | s | m | h)
--host-add API 1.32+
Agregar una asignación personalizada de host a IP (host: ip)
--host-rm API 1.25+
Eliminar una asignación personalizada de host a IP (host: ip)
--hostname API 1.25+
Nombre de host del contenedor
--image Etiqueta de imagen de servicio
--init API 1.37+
Utilice un init dentro de cada contenedor de servicios para reenviar señales y cosechar procesos
--isolation API 1.35+
Modo de aislamiento del contenedor de servicio
--label-add Agregar o actualizar una etiqueta de servicio
--label-rm Quitar una etiqueta por su clave
--limit-cpu Limitar CPU
--limit-memory Limitar memoria
--log-driver Controlador de registro para el servicio
--log-opt Opciones de controlador de registro
--mount-add Agregar o actualizar una montura en un servicio
--mount-rm Eliminar una montura por su ruta de destino
--network-add API 1.29+
Agregar una red
--network-rm API 1.29+
Quitar una red
--no-healthcheck API 1.25+
Deshabilitar cualquier HEALTHCHECK especificado en el contenedor
--no-resolve-image API 1.30+
No consulte el registro para resolver el resumen de imágenes y las plataformas compatibles
--placement-pref-add API 1.28+
Agregar una preferencia de ubicación
--placement-pref-rm API 1.28+
Eliminar una preferencia de ubicación
--publish-add Agregar o actualizar un puerto publicado
--publish-rm Eliminar un puerto publicado por su puerto de destino
--quiet , -q Suprimir la salida de progreso
--read-only API 1.28+
Monte el sistema de archivos raíz del contenedor como solo lectura
--replicas Numero de tareas
--replicas-max-per-node API 1.40+
Número máximo de tareas por nodo (predeterminado 0 = ilimitado)
--reserve-cpu Reserva de CPU
--reserve-memory Reserva de memoria
--restart-condition Reiniciar cuando se cumpla la condición (“ninguno” | “en caso de falla” | “cualquiera”)
--restart-delay Retraso entre intentos de reinicio (ns | us | ms | s | m | h)
--restart-max-attempts Número máximo de reinicios antes de rendirse
--restart-window Ventana utilizada para evaluar la política de reinicio (ns | us | ms | s | m | h)
--rollback API 1.25+
Retroceder a la especificación anterior
--rollback-delay API 1.28+
Retraso entre reversiones de tareas (ns | us | ms | s | m | h)
--rollback-failure-action API 1.28+
Acción en caso de error de reversión (“pausar” | “continuar”)
--rollback-max-failure-ratio API 1.28+
Tasa de fallas para tolerar durante una reversión
--rollback-monitor API 1.28+
Duración después de cada reversión de tarea para monitorear fallas (ns | us | ms | s | m | h)
--rollback-order API 1.29+
Orden de reversión (“comenzar primero” | “detener primero”)
--rollback-parallelism API 1.28+
Número máximo de tareas revertidas simultáneamente (0 para revertir todas a la vez)
--secret-add API 1.25+
Agregar o actualizar un secreto en un servicio
--secret-rm API 1.25+
Eliminar un secreto
--stop-grace-period Tiempo de espera antes de forzar la muerte de un contenedor (ns | us | ms | s | m | h)
--stop-signal API 1.28+
Señal para detener el contenedor
--sysctl-add API 1.40+
Agregar o actualizar una opción Sysctl
--sysctl-rm API 1.40+
Eliminar una opción de Sysctl
--tty , -t API 1.25+
Asignar un pseudo-TTY
--update-delay Retraso entre actualizaciones (ns | us | ms | s | m | h)
--update-failure-action Acción en caso de error de actualización (“pausar” | “continuar” | “deshacer”)
--update-max-failure-ratio API 1.25+
Tasa de fallas para tolerar durante una actualización
--update-monitor API 1.25+
Duración después de cada actualización de tarea para monitorear fallas (ns | us | ms | s | m | h)
--update-order API 1.29+
Orden de actualización (“comenzar primero” | “detener primero”)
--update-parallelism Número máximo de tareas actualizadas simultáneamente (0 para actualizar todas a la vez)
--user , -u Nombre de usuario o UID (formato: [:])
--with-registry-auth Envíe los detalles de autenticación del registro a los agentes del enjambre
--workdir , -w Directorio de trabajo dentro del contenedor

Comando de padres

Mando Descripción
servicio de docker Gestionar servicios

Comandos relacionados

Mando Descripción
Crear servicio Docker Crea un nuevo servicio
inspeccionar el servicio de Docker Mostrar información detallada sobre uno o más servicios
registros de servicio de Docker Obtener los registros de un servicio o tarea
servicio ls docker Listar servicios
servicio docker ps Enumere las tareas de uno o más servicios
docker service rm Eliminar uno o más servicios
reversión del servicio de Docker Revertir los cambios en la configuración de un servicio
escala de servicio de Docker Escale uno o varios servicios replicados
actualización del servicio de Docker Actualizar un servicio

Descripción ampliada

Actualiza un servicio como se describe en los parámetros especificados. Este comando debe ejecutarse apuntando a un nodo administrador. Los parámetros son los mismos que docker service create. Por favor, mire la descripción allí para obtener más información.

Normalmente, la actualización de un servicio solo hará que las tareas del servicio se reemplacen por otras nuevas si un cambio en el servicio requiere volver a crear las tareas para que surta efecto. Por ejemplo, solo cambiando el --update-parallelism La configuración no volverá a crear las tareas, porque las tareas individuales no se ven afectadas por esta configuración. sin embargo, el --force flag hará que las tareas se vuelvan a crear de todos modos. Esto se puede utilizar para realizar un reinicio continuo sin ningún cambio en los parámetros del servicio.

Ejemplos de

Actualizar un servicio

$ docker service update --limit-cpu 2 redis

Realice un reinicio continuo sin cambios de parámetros

$ docker service update --force --update-parallelism 1 --update-delay 30s redis

En este ejemplo, el --force flag hace que las tareas del servicio se cierren y se reemplacen por otras nuevas, aunque ninguno de los otros parámetros normalmente haría que eso suceda. los --update-parallelism 1 La configuración garantiza que solo se reemplace una tarea a la vez (este es el comportamiento predeterminado). los --update-delay 30s La configuración introduce un retraso de 30 segundos entre tareas, de modo que el reinicio continuo se produce de forma gradual.

Agregar o quitar monturas

Utilizar el --mount-add o --mount-rm Las opciones agregan o eliminan los volúmenes o montajes de enlace de un servicio.

El siguiente ejemplo crea un servicio que monta el test-data volumen a /somewhere. El siguiente paso actualiza el servicio para montar también el other-volume volumen a /somewhere-elsevolumen, El último paso desmonta el /somewhere punto de montaje, eliminando eficazmente el test-data volumen. Cada comando devuelve el nombre del servicio.

  • los --mount-add bandera toma los mismos parámetros que el --mount bandera en service create. Consulte la sección de volúmenes y montajes de enlace en el service create referencia para más detalles.

  • los --mount-rm bandera toma el target camino del monte.

$ docker service create 
    --name=myservice 
    --mount 
      type=volume,source=test-data,target=/somewhere 
    nginx:alpine 
    myservice

myservice

$ docker service update 
    --mount-add 
      type=volume,source=other-volume,target=/somewhere-else 
    myservice

myservice

$ docker service update --mount-rm /somewhere myservice

myservice

Agregar o quitar puertos de servicio publicados

Utilizar el --publish-add o --publish-rm banderas para agregar o eliminar un puerto publicado para un servicio. Puede usar la sintaxis corta o larga que se describe en la referencia de creación del servicio docker.

El siguiente ejemplo agrega un puerto de servicio publicado a un servicio existente.

$ docker service update 
  --publish-add published=8080,target=80 
  myservice

Agregar o quitar una red

Utilizar el --network-add o --network-rm banderas para agregar o eliminar una red para un servicio. Puede usar la sintaxis corta o larga que se describe en la referencia de creación del servicio docker.

El siguiente ejemplo agrega un nuevo nombre de alias a un servicio existente que ya está conectado a la red my-network:

$ docker service update 
  --network-rm my-network 
  --network-add name=my-network,alias=web1 
  myservice

Retroceder a la versión anterior de un servicio

Utilizar el --rollback opción para volver a la versión anterior del servicio.

Esto revertirá el servicio a la configuración que estaba en su lugar antes de la más reciente docker service update mando.

El siguiente ejemplo actualiza el número de réplicas del servicio de 4 a 5 y luego revierte a la configuración anterior.

$ docker service update --replicas=5 web

web

$ docker service ls

ID            NAME  MODE        REPLICAS  IMAGE
80bvrzp6vxf3  web   replicated  0/5       nginx:alpine

Hacer retroceder el web Servicio…

$ docker service update --rollback web

web

$ docker service ls

ID            NAME  MODE        REPLICAS  IMAGE
80bvrzp6vxf3  web   replicated  0/4       nginx:alpine

Otras opciones se pueden combinar con --rollback también, por ejemplo, --update-delay 0s para ejecutar la reversión sin demora entre tareas:

$ docker service update 
  --rollback 
  --update-delay 0s
  web

web

Los servicios también se pueden configurar para volver a la versión anterior automáticamente cuando falla una actualización. Para configurar un servicio para la reversión automática, use --update-failure-action=rollback. Se activará una reversión si la fracción de las tareas que no se actualizaron con éxito excede el valor dado con --update-max-failure-ratio.

La tasa, el paralelismo y otros parámetros de una operación de reversión están determinados por los valores pasados ​​con las siguientes banderas:

  • --rollback-delay
  • --rollback-failure-action
  • --rollback-max-failure-ratio
  • --rollback-monitor
  • --rollback-parallelism

Por ejemplo, un servicio configurado con --update-parallelism 1 --rollback-parallelism 3 actualizará una tarea a la vez durante una actualización normal, pero durante una reversión, 3 tareas a la vez se revertirá. Estos parámetros de reversión se respetan tanto durante las reversiones automáticas como para las reversiones iniciadas manualmente mediante --rollback.

Agregar o quitar secretos

Utilizar el --secret-add o --secret-rm Las opciones agregan o eliminan los secretos de un servicio.

El siguiente ejemplo agrega un secreto llamado ssh-2 y quita ssh-1:

$ docker service update 
    --secret-add source=ssh-2,target=ssh-2 
    --secret-rm ssh-1 
    myservice

Actualizar servicios usando plantillas

Algunas banderas de service update Apoyar el uso de plantillas. Ver service create para la referencia.

Especificar el modo de aislamiento (Windows)

service update apoya lo mismo --isolation marcar como service create Ver service create para la referencia.