Docker Daemon Config-abrindo portas para dockerd

Quero abrir o TCP para o daemon docker para que o Jenkins possa construir contêineres contra ele.

Estou recebendo muitas informações sobre como fazer isso. Na esperança de obter o melhor método.

Objetivos do dockerd:

  • Ouça sobre TCP e socket unix local.
  • Persistência através de reinicializações.
  • Autorização específica do Host para segurança. Permitir apenas o acesso de um host específico. (pode ser feito com iptables)

Este é um host Ubuntu Xenial.

Informações Atuais Do Dockerd Run:

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

Docker Config snippet (/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

Como devo fazer isso?

Encontrou uma resposta aplicável e limpa em este blog

Passo:

Editar este arquivo:

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

Procure o existente ExecStart linha:

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

Adicione a configuração desejada:

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

Reiniciar:

systemctl daemon-reloadsudo service docker restart

Depois disso, meu daemon estava ouvindo em 3272 e estava pronto para ir!

Eu tive um desafio semelhante. Quando comecei a procurar começar a mover alguns sistemas do Ubuntu 14.04 para o Ubuntu 16.04. Meu objetivo era usar um arquivo de configuração dockerd com sinalizadores dockerd (DOCKER_OPTS) Para Ubuntu 16.04 (systemd) e Ubuntu 14.04 (Upstart) diferente de /etc/docker/daemon.json. Eu escolhi não USAR /etc / docker / daemon.json para configuração do daemon docker porque json não suporta comentários.

Eu queria que um design systemd usasse um arquivo de substituição, que apenas modifica os sinalizadores dockerd. Ele usa o arquivo de configuração padrão do Docker systemd (/lib/systemd/system/docker.serviço) para outras configurações do Docker. Outro objetivo era personalizar systemd em cada sistema após cada alteração ou inicialização.

Resolve o meu desafio. Pode ajudá-lo.

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