Ich habe den gleichen Artikel in [hier] geschrieben (https://ttis.croud.jp/?uuid=72cb3eef-3aa9-4c2d-8390-690a2f1c69d7).
Führen Sie den folgenden Befehl aus, um Docker unter Ubuntu zu installieren Ich versuche alles mit einer Kopie zu machen, damit es keinen Ärger gibt
sudo apt -y install apt-transport-https ca-certificates software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
sudo apt install -y docker-ce
Startet automatisch beim Start des Betriebssystems und vor Ort
sudo systemctl enable docker
sudo systemctl start docker
Standardmäßig benötigen Sie Root-Rechte, um eine Verbindung zu Docker herzustellen
sudo docker ps
Nachdem Sie den folgenden Befehl ausgeführt haben, können Sie ihn verwenden, indem Sie sich erneut anmelden.
sudo echo usermod -aG docker `logname`
Bestätigung
docker ps
Von hier aus wird es ein schwieriger Teil sein Ich muss ein Oleore-Zertifikat erstellen und es an den Server und den Client verteilen, aber es kostet viel Zeit und Mühe, dies zu tun. Es ist zu ärgerlich, deshalb habe ich ein Skript erstellt, das alle Eingaben in der Mitte überspringt, sodass es mit einem Befehl endet
Überprüfen Sie hier die Befehlsbeschreibung https://github.com/SoraKumo001/docker-tls
Erstellen Sie ein Zertifikat für die Remoteverbindung
curl -s https://raw.githubusercontent.com/SoraKumo001/docker-tls/master/docker-tls.sh | \
sudo bash
Wenn Sie den Hostnamen beim Herstellen einer Verbindung korrekt festlegen möchten, geben Sie den Domänennamen und die IP wie folgt an
curl -s https://raw.githubusercontent.com/SoraKumo001/docker-tls/master/docker-tls.sh | \
sudo bash -s DNS:host.example.com,IP:10.1.1.1
--Privat Schlüssel /etc/docker/certs/private-key.pem
--Datei für Docker-Daemon /etc/docker/certs/ca.pem /etc/docker/certs/server-key.pem /etc/docker/certs/server-cert.pem
--Client-Datei ~/.docker/ca.pem ~/.docker/cert.pem ~/.docker/key.pem
Kopieren Sie für eine Remoteverbindung in einer Windows- oder Mac-Umgebung die Clientdatei in den Ordner .docker im Benutzerverzeichnis.
Das automatische Zertifikatgenerierungsskript dient zur Wiederverwendung privater Schlüssel Wenn Sie das Zertifikat erneut ausstellen, müssen Sie das Zertifikat des Clients nicht neu verteilen. Wenn Sie ein Zertifikat mit dem vorhandenen privaten Schlüssel erstellen, der an denselben Speicherort auf einem anderen Server kopiert wurde, können Sie mit derselben Clientdatei eine Verbindung zu mehreren Servern herstellen.
Wenn Sie ein vollständiges Remake benötigen, löschen Sie den privaten Schlüssel bitte manuell
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/certs/ca.pem --tlscert=/etc/docker/certs/server-cert.pem --tlskey=/etc/docker/certs/server-key.pem -H tcp://0.0.0.0 -H fd:// --containerd=/run/containerd/containerd.sock
--Wenn es schwierig ist, manuell zu bearbeiten Das Umschreiben wird durch Einfügen des folgenden Befehls abgeschlossen
sudo sed -i "s/^ExecStart=.*/ExecStart=\/usr\/bin\/dockerd \
--tlsverify --tlscacert=\/etc\/docker\/certs\/ca.pem \
--tlscert=\/etc\/docker\/certs\/server-cert.pem \
--tlskey=\/etc\/docker\/certs\/server-key.pem \
-H tcp:\/\/0.0.0.0 -H fd:\/\/ \
--containerd=\/run\/containerd\/containerd.sock/" \
/lib/systemd/system/docker.service
sudo systemctl daemon-reload && sudo systemctl restart docker
In den bisherigen Diensteinstellungen ist eine tls-Verbindung erforderlich, wenn eine Verbindung durch Adressierung mit -H hergestellt wird. Daher können Sie nur dann eine Verbindung herstellen, wenn Sie --tls angeben. Wenn Sie --tlsverify festlegen, wird der Domänenname beim Herstellen einer Verbindung überprüft.
docker --tls -H localhost ps
docker --tlsverify -H localhost ps
Docker-Befehle können Docker-Images weiterleiten, sodass Sie Bilder remote übertragen können, ohne Docker Hub zu durchlaufen. Gehen Sie dazu wie folgt vor:
Docker speichern Bildnamen(Es können mehrere angegeben werden) | docker --tls -H Servername laden
Nützlich zum Übertragen lokal erstellter Images oder CI / CD-Builds Dies macht es einfach, kleine bereitzustellen
Bitte beachten Sie, dass Sie nur dann eine Verbindung herstellen können, wenn sie mit dem beim Erstellen des Zertifikats angegebenen Hostnamen übereinstimmt.
docker-compose --tlsverify -H Hostname:2375 oder weniger Normaler Befehl
Sobald Sie das Zertifikat ausgestellt haben, können Sie Docker problemlos aus der Ferne bedienen. Wenn Sie danach einen Container senden und verschieben, können Sie fast alles tun Achten Sie jedoch auf Fehler wie das Einfügen und Veröffentlichen eines Zertifikats in ein öffentliches Repository. Veröffentlichen schafft Bedauern
Recommended Posts