start docker_opts ubuntu docker upstart systemd

docker_opts - start docker daemon ubuntu



DOCKER_OPTS no funciona en el archivo de configuraciĆ³n/etc/default/docker (8)

He cambiado /etc/default/docker con DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock" (versión de docker 1.4.1 en ubuntu 14.04), pero no tiene ningún efecto para mí (no escuchar en el puerto 2375 ). Parece que la ventana acoplable no lee este archivo de configuración inicial porque encontré que la export http_proxy entorno export http_proxy no funciona también.

Solo sudo docker -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -d funciona.

Realmente me confundió!


Acabo de encontrarme con el "mismo" problema.

Noté que todas las opciones en / etc / default / docker están realmente comentadas de forma predeterminada.

Quité el # en frente de DOCKER_OPTS, reinicié y funcionó como estaba previsto.

Creo que las versiones anteriores de la ventana acoplable (1.3) no tenían estas opciones comentadas de forma predeterminada, al menos no recuerdo haber tenido que eliminar el signo #.


De acuerdo con la documentación de la ventana acoplable , la forma recomendada de configurar las banderas de daemon y las variables de entorno para su daemon Docker es usar un archivo de acceso directo del sistema .

Entonces, para este caso específico, haga lo siguiente:

  1. Use el comando sudo systemctl edit docker.service para abrir un archivo de anulación para docker.service en un editor de texto.

  2. Agregue o modifique las siguientes líneas, sustituyendo sus propios valores.

    [Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock

  3. Guarda el archivo.

  4. Recargue la configuración de systemctl .

    $ sudo systemctl daemon-reload

  5. Reiniciar Docker:

    $ sudo systemctl restart docker.service

  6. Verifique si se dockerd el cambio revisando la salida de netstat para confirmar que el dockerd está escuchando en el puerto configurado.

    $ sudo netstat -lntp | grep dockerd tcp 0 0 127.0.0.1:2375 0.0.0.0:* LISTEN 3758/dockerd


Después de verificar el código fuente de la config.go acoplable ( config.go y flags.go ), diría que las opciones que puede pasar en $DOCKER_OPTS son opciones para la propia $DOCKER_OPTS acoplable, y -H o --host es una opción para el demonio --host . Como solución para resolver su problema, puede editar el archivo de script de inicio que está utilizando para incluir la opción -H allí. Por ejemplo:

  • Si está utilizando el sistema inicial upstart, edite el archivo /etc/init/docker.conf cambiando la línea exec "$DOCKER" -H "tcp://127.0.0.1:2375" -H "unix:///var/run/docker.sock" -d $DOCKER_OPTS con exec "$DOCKER" -H "tcp://127.0.0.1:2375" -H "unix:///var/run/docker.sock" -d $DOCKER_OPTS
  • Si está utilizando el sistema sysvinit init, edite el archivo /etc/init.d/docker cambiando las líneas de inicio con algo como:

Utilice este comando:

start-stop-daemon --start --background / --no-close / --exec "$DOCKER" / --pidfile "$DOCKER_SSD_PIDFILE" / --make-pidfile / -- / -H "tcp://127.0.0.1:2375" / -H "unix:///var/run/docker.sock" / -d -p "$DOCKER_PIDFILE" / $DOCKER_OPTS >> / "$DOCKER_LOGFILE" 2>&1 log_end_msg $? ;;


En respuesta a los comentarios de systemd en combinación con Ubuntu: Ubuntu 14.04 aún usa Upstart, por lo que los cambios en /etc/default/docker deberían haber tenido el efecto deseado. No es hasta la 15.04 que Ubuntu comenzó a usar systemd por defecto.

En caso de que tenga Ubuntu 15.04 o posterior y, por lo tanto, necesite usar systemd, o si elige explícitamente usar systemd antes de 15.04, la forma más simple y correcta de obtener el efecto deseado del OP, un socket TCP, sería:

  1. Cree el archivo /etc/systemd/system/docker.service.d/docker-tcp.conf
  2. Añade el contenido a continuación
  3. Ejecutar sudo systemctl daemon-reload
  4. Ejecutar sudo systemctl restart docker

Contenidos del archivo:

[Service] ExecStart= ExecStart=/usr/bin/docker daemon --host=tcp://127.0.0.1:2375


Tuve el mismo problema.

Ubuntu 14.10 usa systemd lugar de sysv-init/upstart . Tal vez debería buscar en /lib/systemd/system/docker.service para cambiar las opciones.


Tuve un reto similar. Cuando comencé a buscar comenzar a mover algunos sistemas de Ubuntu 14.04 a Ubuntu 16.04. Mi objetivo era usar un archivo de configuración dockerd con indicadores dockerd (DOCKER_OPTS) para Ubuntu 16.04 (systemd) y Ubuntu 14.04 (Upstart) distintos de /etc/docker/daemon.json. Elegí no usar /etc/docker/daemon.json para la configuración del daemon docker porque json no admite comentarios.

Quería un diseño de sistema para usar un archivo de anulación, que solo modifica las marcas de dockerd. Utiliza el archivo de configuración predeterminado de systemd de Docker (/lib/systemd/system/docker.service) para otras configuraciones de Docker. Otro objetivo era personalizar systemd en cada sistema después de cada cambio o arranque.

Resuelve mi reto. Te puede ayudar.

https://github.com/BradleyA/docker-scripts/tree/master/dockerd-configuration-options

git clone https://github.com/BradleyA/docker-scripts cd docker-scripts/dockerd-configuration-options


Usar la plataforma independiente daemon-configuration-file parece mucho más limpio.

Agregue "hosts" a su /etc/docker/daemon.json (o /custom/path/to/daemon/config.json si está usando la opción --config-file mientras inicia el dockerd ):

{ ... "hosts": ["tcp://127.0.0.1:2375", "unix:///var/run/docker.sock"], ... }

reinicie el demonio:

sudo systemctl restart docker


Vea aquí las versiones posteriores de Debian / Ubuntu que usan systemd.

Este enlace explica cómo modificar correctamente un archivo de unidad del sistema para que funcione con DOCKER_OPTS: https://github.com/docker/docker/issues/9889

Esencialmente creas un archivo /etc/systemd/system/docker.service.d/docker.conf y especificas tus anulaciones allí.

Tuve que hacer algo como lo siguiente en el archivo mencionado anteriormente para iniciar la ventana acoplable con la variable de entorno DOCKER_OPTS en un entorno systemd:

[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target docker.socket Requires=docker.socket [Service] EnvironmentFile=-/etc/default/docker ExecStart= ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd:// MountFlags=slave LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity [Install] WantedBy=multi-user.target

El proceso actual de instalación de la ventana acoplable parece descuidar el archivo de la unidad systemd.