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:
Use el comando
sudo systemctl edit docker.service
para abrir un archivo de anulación paradocker.service
en un editor de texto.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
Guarda el archivo.
Recargue la configuración de
systemctl
.$ sudo systemctl daemon-reload
Reiniciar Docker:
$ sudo systemctl restart docker.service
Verifique si se
dockerd
el cambio revisando la salida denetstat
para confirmar que eldockerd
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íneaexec "$DOCKER" -H "tcp://127.0.0.1:2375" -H "unix:///var/run/docker.sock" -d $DOCKER_OPTS
conexec "$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:
- Cree el archivo
/etc/systemd/system/docker.service.d/docker-tcp.conf
- Añade el contenido a continuación
- Ejecutar
sudo systemctl daemon-reload
- 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.