Configuración del demonio de Docker: Apertura de puertos para dockerd

Quiero abrir TCP al demonio docker para que Jenkins pueda construir contenedores contra él.

Estoy recibiendo mucha información sobre cómo hacer esto. Con la esperanza de obtener el mejor método.

Objetivos de dockerd:

  • Escucha a través de TCP y socket unix local.
  • Persistencia a través de reinicios.
  • Autorización específica del host para seguridad. Solo permita el acceso desde un host específico. (se puede hacer con iptables)

Este es un host Xenial de Ubuntu.

Información de Ejecución Actual de Dockerd:

root@host:# ps -ef |grep dockerdroot      1171     1  0 17:51 ?        00:00:04 /usr/bin/dockerd -H fd://

Fragmento de configuración de Docker (/etc / init / docker.conf):

post-start script        DOCKER_OPTS=        DOCKER_SOCKET=        if [ -f /etc/default/$UPSTART_JOB ]; then                . /etc/default/$UPSTART_JOB        fi        if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then                DOCKER_SOCKET=/var/run/docker.sock        else                DOCKER_SOCKET=$(printf "%s" "$DOCKER_OPTS" | grep -oP -e '(-H|--host)\W*unix://\K(\S+)' | sed 1q)        fi        if [ -n "$DOCKER_SOCKET" ]; then                while ! [ -e "$DOCKER_SOCKET" ]; do                        initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1                        echo "Waiting for $DOCKER_SOCKET"                        sleep 0.1                done                echo "$DOCKER_SOCKET is up"        fiend script

¿Cómo debo hacer esto?

Encontré una respuesta aplicable y limpia en este blog

Steps:

Editar este archivo:

sudo vi /lib/systemd/system/docker.service

Busque el existente ExecStart alinear:

ExecStart=/usr/bin/docker daemon -H fd://

Agregue la configuración deseada:

ExecStart=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:3272

Reiniciar:

systemctl daemon-reloadsudo service docker restart

Después de eso, mi demonio estaba escuchando en 3272 y estaba listo para ir!

Tuve un desafío 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) que no sea /etc/docker/daemon.json. Elegí no usar /etc/docker / daemon.json para la configuración del demonio de docker porque json no admite comentarios.

Quería que un diseño de systemd usara un archivo de anulación, que solo modifica los indicadores de dockerd. Utiliza el archivo de configuración predeterminado de Docker systemd (/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 desafío. Puede que te ayude.

git clone https://github.com/BradleyA/docker-security-infrastructurecd docker-security-infrastructure/dockerd-configuration-optionsmore README.md