Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

509
Vistas
Cómo usar el parámetro --init en docker run

Hay --init y --init-path para docker run , pero no está claro cómo usarlo.

Al principio, pensé que era algo así como dumb-init , pero incluido en el núcleo de la ventana acoplable (algo así como "nativo"). Pero la clave --init exige que también se configure --init-path , apuntando al binario docker-init , y no da ninguna pista sobre dónde tomarlo. Google guarda silencio sobre docker-init .

De acuerdo, tal vez se supone que debo usar yelp/dumb-init o 'phusion/baseimage-docker', pero esas soluciones no parecen usar la opción --init de docker run .

Entonces, tengo curiosidad, ¿dónde tomo este "binario docker-init" para establecer la --init-path ?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Especificar la nueva opción docker --init en el comando de ejecución básicamente establece ENTRYPOINT en tini y le pasa el CMD o lo que especifique en la línea de comandos.

Por ejemplo, sin init, CMD se convierte en pid 1. En este caso, /bin/bash

 docker run -ti --rm ubuntu:16.04 /bin/bash root@d740f7360840:/# ps -fA UID PID PPID C STIME TTY TIME CMD root 1 0 1 03:30 ? 00:00:00 /bin/bash root 11 1 0 03:30 ? 00:00:00 ps -fA

Con --init, tini (/dev/init) se convierte en pid 1

 docker run -ti --init --rm ubuntu:16.04 /bin/bash root@5b5fe6ee71b5:/# ps -fA UID PID PPID C STIME TTY TIME CMD root 1 0 1 03:30 ? 00:00:00 /dev/init -- /bin/bash root 7 1 0 03:30 ? 00:00:00 /bin/bash root 12 7 0 03:30 ? 00:00:00 ps -fA

tini es un proceso de inicio de primera clase que se puede ejecutar como pid 1 correctamente. Un proceso pid 1 debe cosechar correctamente los procesos secundarios bifurcados, si no lo hace, suceden cosas malas, como la fuga de recursos y la aparición de zombis.

Esto es lo que desea para las aplicaciones que se bifurcan y no se han escrito pensando en la recolección de niños, ya que normalmente dejarían esto en manos del sistema de inicio. Un ejemplo clásico son las aplicaciones Java Jenkins.

about 4 years ago · Santiago Trujillo Denunciar

0

Encontré esto en la documentación :

Puede usar el indicador --init para indicar que se debe usar un proceso de inicio como el PID 1 en el contenedor. Especificar un proceso de inicio garantiza que las responsabilidades habituales de un sistema de inicio, como cosechar procesos zombie, se realicen dentro del contenedor creado. El proceso de inicio predeterminado que se usa es el primer ejecutable docker-init que se encuentra en la ruta del sistema del proceso del demonio de Docker. Este binario docker-init, incluido en la instalación predeterminada, está respaldado por tini .

No pude encontrar docker-init en una instalación de macOS Docker, pero en Linux está aquí:

/usr/bin/docker-init

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda