Docker ist für viele Entwickler und Systemadministratoren ein gängiges Virtualisierungstool. Es kann viele Anwendungen in einen Container packen, der ohne Änderungen auf allen Plattformen ausgeführt werden kann. In einigen Anwendungsszenarien müssen Benutzer jedoch eine serielle Schnittstelle oder ein serielles Gerät verwenden. Kann Docker also virtuelle serielle Schnittstellen verwenden?
Im Linux-Betriebssystem werden Geräte mit serieller Schnittstelle durch die Gerätedateien /dev/ttyS0 bis /dev/ttyS3 dargestellt. Sie können zum Anschluss von Geräten wie Druckern, Modems, digitalen Messgeräten und mehr verwendet werden. Die serielle Schnittstelle ist eine einfache und zuverlässige Kommunikationsmethode. Innerhalb von Docker verfügt der Docker-Container jedoch nicht über ein eigenes physisches Hardwaregerät, sodass das physische serielle Portgerät nicht standardmäßig verwendet werden kann.
Docker bietet jedoch einen Mechanismus namens „Gerätezuordnung“, um virtuelle oder physische Geräte auf dem Host dem Docker-Container zuzuordnen. In diesem Fall können Sie die serielle Kommunikation simulieren, indem Sie das serielle Gerät auf dem Host-Computer dem Docker-Container zuordnen.
Beim Starten eines Docker-Containers kann die Gerätezuordnung durch Hinzufügen der Option „--device“ erreicht werden. Der folgende Befehl ordnet beispielsweise das Gerät /dev/ttyUSB0 der Gerätedatei /dev/ttyUSB0 des Docker-Containers zu:
$ sudo docker run -it --name mycontainer --device=/dev/ttyUSB0 ubuntu:latest
Führen Sie nach dem Starten des Containers den folgenden Befehl im Container aus, um zu überprüfen, ob der serielle Port im Container verfügbar ist :
$ ls -l /dev/ttyUSB0
In Wenn Sie den folgenden Befehl in einem Docker-Container ausführen, wird versucht, das serielle Gerät zu öffnen:
$ minicom -D /dev/ttyUSB0
Wenn auf dem Host kein serieller Treiber installiert ist, hat der Container keinen Zugriff auf das Gerät. Installieren Sie daher vor dem Start des Containers die erforderlichen Treiber.
Obwohl es möglich ist, serielle Ports in Docker-Containern mithilfe der Gerätezuordnung zu verwenden, ist dies keine ideale Lösung, da die Gerätezuordnung sehr schwierig sein wird, wenn Sie mehrere serielle Geräte gleichzeitig anschließen müssen. In diesem Fall ist die Verwendung einer virtuellen seriellen Schnittstelle eine bessere Lösung.
Virtuelle serielle Schnittstelle ist eine Methode zur Simulation der seriellen Schnittstellenkommunikation durch Zuordnung des seriellen Host-Schnittstellengeräts zu einem virtuellen seriellen Schnittstelle-Gerät. Dieses virtuelle serielle Gerät sieht aus wie ein echtes serielles Gerät, ist aber eigentlich nur ein echtes serielles Gerät, das Daten an den Host überträgt. In einem Docker-Container können Sie Tools wie socat oder ttyd verwenden, um virtuelle serielle Geräte zu erstellen. 🔜 Portkommunikation.
Dann verwenden Sie beim Starten des Docker-Containers den folgenden Befehl, um den virtuellen seriellen Port im Container zuzuordnen:
$ sudo socat pty,link=/dev/ttyS0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0
Im Container können Sie versuchen, das /dev/ttyS0-Gerät für die serielle Kommunikation zu öffnen.
Zusammenfassung
Obwohl Docker standardmäßig keine seriellen Geräte unterstützt, können Sie Gerätezuordnung oder virtuelle serielle Geräte verwenden, um serielle Kommunikation zu simulieren. Bei der Auswahl einer Lösung müssen Sie beachten, dass die Gerätezuordnung beim Anschluss mehrerer serieller Geräte sehr mühsam sein kann, während durch die Verwendung virtueller serieller Ports problemlos mehrere serielle Portverbindungen erreicht werden können.
Das obige ist der detaillierte Inhalt vonKann Docker eine virtuelle serielle Schnittstelle nutzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!