Pokud chcete používat Docker vzdáleně (ovládat jej z jiného hostu, je téměř nutností zapnout TLS ověřování. Jak to nasadit si ukážeme zde.
Generování certifikátů
Nejdříve si vygenerujeme SSL certifikáty nástrojem minica. Předpokládejme že náš Docker běží na serveru kam je nacílena doména docker.sikademo.com.
Pokud nemáte minica můžete jej nainstalovat pomocí brew install minica
minica --domains docker.sikademo.com
scp minica.pem [email protected]:/etc/docker/ca.pem
scp docker.sikademo.com/cert.pem [email protected]:/etc/docker/cert.pem
scp docker.sikademo.com/key.pem [email protected]:/etc/docker/key.pemSpuštění Dockeru s TLS parametry
Je potřeba spustit Docker s těmito parametry --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/cert.pem --tlskey=/etc/docker/key.pem -H=0.0.0.0:2376. V systemd nastavte tyto parametry ke spouštění Dockeru.
dockerd \
--tlsverify \
--tlscacert=/etc/docker/ca.pem \
--tlscert=/etc/docker/cert.pem \
--tlskey=/etc/docker/key.pem \
-H=0.0.0.0:2376Konfigurační soubor Dockeru v systemd zjistitite tímto příkazem:
systemctl status docker.serviceVypíše to něco jako:

Pak otevřete soubor /lib/systemd/system/docker.service a přidáte TLS parametry. Poté reloadnete konfiguraci a restartujete Docker.
vim /lib/systemd/system/docker.service
systemctl daemon-reload
systemctl restart dockerPřipojení ke vzdálenému Dockeru
Zkopírujeme si certifikáty do složky ~/.docker/docker.sikademo.com:
mkdir ~/.docker/docker.sikademo.com
cp minica.pem ~/.docker/docker.sikademo.com/ca.pem
cp docker.sikademo.com/cert.pem ~/.docker/docker.sikademo.com/cert.pem
cp docker.sikademo.com/key.pem ~/.docker/docker.sikademo.com/key.pemPro připojení vzdáleného Dockeru můžete použít buď parametry příkazu docker nebo environment variables.
docker \
--tlsverify \
--tlscacert=~/.docker/docker.sikademo.com/ca.pem \
--tlscert=~/.docker/docker.sikademo.com/cert.pem \
--tlskey=~/.docker/docker.sikademo.com/key.pem \
-H=tcp://docker.sikademo.com:2376 \
versionnebo pomocí proměnných
export DOCKER_HOST=tcp://docker.sikademo.com:2376
export DOCKER_CERT_PATH=~/.docker/docker.sikademo.com
export DOCKER_TLS_VERIFY=1
docker versionZajímáte se o Docker? Zkuste mé školení Dockeru!
Ukázat školení DockeruChcete dostávat nové články do emailu? Přihlašte se k newsletteru!
Přihlásit se k odběru
Ondřej Šika
Jsem freelance DevOps konzultant a lektor. Zlepšuji práci vývojářských týmu zaváděním efektivních procesů ve vývoji. Naučím Vás používat prověřené nástroje a technologie, které povedou k rychlejšímu vývoji a bezpečnějšímu provozu vašeho software.