Určit hostname.
Pokud je to .inited.cz , tak ho na web4u přidat do DNS.
Vygenerovat serverový certifikát
Použijeme easy-rsa, což je jednoduchá certifikační autorita.
# cd easy-rsa/ # source ./vars # vi openssl.cnf přidat server hostname tady: (je to dočasný workaround) ... extendedKeyUsage=serverAuth keyUsage = digitalSignature, keyEncipherment subjectAltName=$ENV::KEY_ALTNAMES # # pokud potrebuji SSL certifikat pro server, tady nastavit hostname: subjectAltName=DNS:server-docker.inited.cz # ./build-key-server server-docker.inited.cz # less keys/farma-docker.inited.cz.key
vzít:
a vložit je na serveru do složky /etc/docker
přejmenovat
a nastavit oprávnění:
# chmod 600 /etc/docker/server-key.pem # chmod 644 /etc/docker/server-cert.pem /etc/docker/ca.pem
Upravit, případně založit soubor /etc/docker/daemon.json :
{
"tls": true,
"tlsverify": true,
"tlscacert": "/etc/docker/ca.pem",
"tlscert": "/etc/docker/server-cert.pem",
"tlskey": "/etc/docker/server-key.pem",
"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"]
}
Dále je třeba změnit konfiguraci služby systemd. Ve výchozím nastavení se konfigurace vkládá přes příkazovou řádku. Nově bude konfigurace v /etc/docker . Nelze mít konfiguraci na obou místech.
vi /lib/systemd/system/docker.service :
[Service] .... #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecStart=/usr/bin/dockerd ...
Po změně configu je třeba udělat reload definice a spustit docker:
# systemctl daemon-reload # systemctl start docker
Nastavení lokálního přístupu přes SSL do docker serveru:
$ docker context create vzdaleny-server --docker "host=tcp://server-docker.inited.cz:2376,ca=ca.pem,cert=cert.pem,key=key.pem"
potom
docker context use vzdaleny-server
a je to