So aktivieren Sie den Fernzugriff in Docker

So aktivieren Sie den Fernzugriff in Docker

Docker-Daemon-Socket

Der Docker-Daemon kann über drei verschiedene Socket-Typen auf Anfragen der Docker Engine-API warten: unix , tcp und fd .

Standardmäßig wird unter /var/run/docker.sock ein unix -Domain-Socket (oder IPC-Socket) erstellt, wofür root Rechte oder die Mitgliedschaft in docker -Gruppe erforderlich sind.

Wenn Sie remote auf den Docker-Daemon zugreifen müssen, müssen Sie tcp -Sockets aktivieren. Beachten Sie, dass die Standardeinstellungen unverschlüsselten und nicht authentifizierten direkten Zugriff auf den Docker-Daemon ermöglichen, der mithilfe des integrierten verschlüsselten HTTPS-Sockets oder durch Platzieren eines davor liegenden sicheren web geschützt werden sollte. Sie können -H tcp://0.0.0.0:2375 verwenden, um auf Port 2375 aller Netzwerkschnittstellen zu lauschen, oder -H tcp://ip:2375 um auf Port 2375 einer bestimmten Netzwerkschnittstelle anhand ihrer IP-Adresse zu lauschen. Verwenden Sie normalerweise Port 2375 für unverschlüsselte Kommunikation mit dem Daemon und Port 2376 für verschlüsselte Kommunikation mit dem Daemon.

Hinweis : Wenn Sie HTTPS-verschlüsselte Sockets verwenden, beachten Sie, dass nur TLS1.0 und höher unterstützt werden. Aus Sicherheitsgründen werden SSLv3 und niedriger nicht mehr unterstützt.

Docker.service ändern

vim /usr/lib/systemd/system/docker.service

Ändern Sie im Abschnitt [Service] die ExecStart -Parameter und fügen Sie am Ende -H tcp://0.0.0.0:2375 hinzu, um auf allen Netzwerkschnittstellen auf Port 2375 zu lauschen.

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

Bildbeschreibung hier einfügen

Laden Sie die Konfigurationsdatei neu und starten Sie den Dienst

systemctl daemon-reload und systemctl docker neu starten
  • daemon-reload : Lädt die Dienstkonfigurationsdatei neu. Wenn sich die Dienstkonfigurationsdatei ändert, muss sie neu geladen werden
  • restart : Starten Sie den Dienst neu.

Überprüfen Sie, ob der dockerd -Prozess auf Port 2375 lauscht:

[root@izoq008ryseuupz ~]# netstat -antp | grep dockerd
tcp6 0 0 :::2375 :::* LISTEN 22494/dockerd    

netstat dient zur Anzeige des Netzwerkstatus. Einige Optionen haben folgende Funktionen:

  • -a oder --all : Alle verbundenen Sockets anzeigen.
  • -n oder --numeric : Verwenden Sie die IP-Adresse direkt, ohne den Umweg über einen Domänennamenserver.
  • -t oder --tcp : Zeigt den Verbindungsstatus des TCP-Übertragungsprotokolls an.
  • -p oder --programs : Zeigt den Programmidentifikationscode und den Programmnamen an, das den Socket verwendet.

prüfen

Testen Sie als nächstes, ob die Docker Engine API über localhost verwendet werden kann.

[root@izoq008ryseuupz ~]# curl http://localhost:2375/version
{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"19.03.13","Details":{"ApiVersion":"1.40","Arch":"amd64","BuildTime":"2020-09-16T17:02:21.000000000+00:00","Experimental":"false","GitCommit":"4484c46d9d","GoVersion":"go1.13.15","KernelVersion":"3.10.0-514.26.2.el7.x86_64","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.3.7","Details":{"GitCommit":"8fba4e9a7d01810a393d5d25a3621dc101981175"}},{"Name":"runc","Version":"1.0.0-rc10","Details":{"GitCommit":"dc9208a3303feef5b3839f4323d9beb36df0a9dd"}},{"Name":"docker-init","Version":"0.18.0","Details":{"GitCommit":"fec3683"}}],"Version":"19.03.13","ApiVersion":"1.40","MinAPIVersion":"1.12","GitCommit":"4484c46d9d","GoVersion":"go1.13.15","Os":"linux","Arch":"amd64","KernelVersion":"3.10.0-514.26.2.el7.x86_64","BuildTime":"2020-09-16T17:02:21.000000000+00:00"}

curl ist ein häufig verwendetes Befehlszeilentool zum Anfordern von Webservern. Ohne Parameter führt curl eine GET-Anfrage aus.

Anscheinend ist die Docker Engine API über localhost verfügbar.

Lassen Sie uns testen, ob die Docker Engine API über die Host-IP remote verwendet werden kann. Die durch die Anforderung http://ip:2375/version erhaltene Seite wird in der folgenden Abbildung angezeigt. Offensichtlich kann sie verwendet werden.

Bildbeschreibung hier einfügen

IDEA kann auch per Fernzugriff verbunden werden.

Bildbeschreibung hier einfügen

Mögliche Probleme

Wenn Sie nicht remote darauf zugreifen können, müssen Sie möglicherweise die Firewall des Servers einrichten. Dies sollte daran liegen, dass Port 2375 nicht verfügbar ist und daher kein Remotezugriff möglich ist. Der Server des Bloggers ist Alibaba Cloud ( Centos7.3 ).

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels zum Aktivieren des Fernzugriffs für Docker. Weitere Informationen zum Fernzugriff auf Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker-Container greift auf MySQL-Operationen des Hosts zu
  • Docker-Container: benutzerdefinierter Host-Netzwerkzugriffsvorgang
  • Docker-Port-Mapping und externe Unzugänglichkeitsprobleme
  • Lösung für das Problem, dass der Docker-Container nicht auf Jupyter zugreifen kann
  • Beim Zugriff auf die Homepage eines im Docker-Modus gestarteten Tomcat tritt ein 404-Fehler auf
  • Docker-Image-Zugriff auf den lokalen Elasticsearch-Port-Vorgang
  • Lösung, wenn Docker plötzlich vom externen Netzwerk nicht mehr erreichbar ist

<<:  Front-End-JavaScript-Funktionsprinzip

>>:  HTML Tutorial: Sammlung häufig verwendeter HTML-Tags (4)

Artikel empfehlen

Details zur Verwendung der JS-Tag-Syntax

Inhaltsverzeichnis 1. Einführung in Label-Anweisu...

5 Tipps zum Schutz Ihres MySQL Data Warehouse

Durch die Aggregierung von Daten aus verschiedene...

Spezifische Verwendung von Nginx Keepalive

Der Standardanforderungsheader des http1.1-Protok...

Detaillierte Schritte zur Installation der XML-Erweiterung in PHP unter Linux

Installieren der XML-Erweiterung in PHP Linux 1. ...

JavaScript implementiert kreisförmiges Karussell

In diesem Artikel wird der spezifische JavaScript...

Tutorial zur Installation von MySQL 8.0.18 unter Windows (Community Edition)

In diesem Artikel wird kurz die Installation von ...

So verwenden Sie die Vue3-Komponente zum asynchronen Laden von Daten Suspense

Inhaltsverzeichnis Vorwort Komponenten erstellen ...

So erlauben Sie den Remotezugriff auf offene Ports in Linux

1. Ändern Sie die Firewall-Konfigurationsdatei # ...

Zusammenfassung der Vue-Datenreaktionsfähigkeit

Bevor wir über die Datenreaktivität sprechen, müs...

Detaillierte Erläuterung der MySQL SQL-Anweisungsanalyse und Abfrageoptimierung

So erhalten Sie SQL-Anweisungen mit Leistungsprob...