Docker Daemon Config - Abrindo portas para dockerd

1

Eu quero abrir o TCP no daemon do 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 o TCP e o soquete unix local.
  • Persistência através de reinicializações.
  • Autorização específica do host para segurança. Permitir somente acesso de host específico. (pode ser feito com iptables)

This is an Ubuntu Xenial host.

Informações atuais de execução do Dockerd:

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

Snippet de configuração do 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"
        fi
end script

Como devo fazer isso?

    
por emmdee 21.11.2017 / 19:43

2 respostas

1

Encontrou uma resposta válida e aplicável em blog

Etapas:

Editar este arquivo:

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

Procure a linha ExecStart existente:

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

Adicione sua configuração desejada:

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

Reiniciar:

systemctl daemon-reload
sudo service docker restart

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

    
por 21.11.2017 / 20:09
0

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 flags dockerd (DOCKER_OPTS) para o Ubuntu 16.04 (systemd) e o Ubuntu 14.04 (Upstart), além do /etc/docker/daemon.json. Eu escolhi não usar o /etc/docker/daemon.json para a configuração do daemon do docker porque o json não suporta comentários.

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

Isso resolve meu desafio. Pode te ajudar.

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

Tags