docker daemon TLS

  • create directories:
    mkdir -p ${HOME}/.docker
    mkdir -p /etc/docker/certs
  • create certificates:
    docker run --rm -v $(pwd)/.docker:/certs paulczar/omgwtfssl
    sudo cp ~/.docker/ca.pem /etc/docker/ssl/ca.pem
    chown -R $USER ~/.docker
    # añadir IPs correspondientes
    docker run --rm -v /etc/docker/ssl:/server \
        -v $(pwd)/.docker:/certs \
        -e SSL_IP=127.0.0.1,172.17.8.101 \
        -e SSL_DNS=docker.local -e SSL_KEY=/server/key.pem \
        -e SSL_CERT=/server/cert.pem paulczar/omgwtfssl
  • test manual:
    sudo systemctl stop docker.service
    dockerd \
        --tlsverify \
        --tlscacert=/etc/docker/certs/ca.pem \
        --tlscert=/etc/docker/certs/cert.pem \
        --tlskey=/etc/docker/certs/key.pem \
        -H=0.0.0.0:2376
    docker --tlsverify \
        --tlscacert=${HOME}/.docker/ca.pem \
        --tlscert=${HOME}/.docker/cert.pem \
        --tlskey=${HOME}/.docker/key.pem \
        -H=127.0.0.1:2376 version
  • configurar dockerd:
    sudo cp /lib/systemd/system/docker.service /etc/systemd/system/docker.service
  • modificar el fichero:
    /etc/systemd/system/docker.service
    ...
    ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock\
      --tlsverify \
      --tlscacert=/etc/docker/certs/ca.pem \
      --tlskey=/etc/docker/certs/key.pem \
      --tlscert=/etc/docker/certs/cert.pem
    ...
    • se puede quitar el acceso a usuarios locales sacando el -H unix:///var/run/docker.sock
  • rearrancar:
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  • dejar por defecto el cliente (si se ha quitado el acceso a través del socket):
    export DOCKER_HOST=tcp://127.0.0.1:2376 DOCKER_TLS_VERIFY=1 DOCKER_CERT_PATH=~/.docker

/via: https://docs.docker.com/engine/security/protect-access/
/via: https://tech.paulcz.net/2016/01/secure-docker-with-tls/ (OLD, 2016, el service no funciona)
/via: https://riptutorial.com/docker/example/17079/enable-remote-access-with-tls-on-systemd

  • tech/docker/tls.txt
  • Darrera modificació: 03/12/2021 22:03
  • per mate