Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bolehkah pelabuhan bersiri maya buruh pelabuhan?

Bolehkah pelabuhan bersiri maya buruh pelabuhan?

PHPz
PHPzasal
2023-04-25 15:56:391623semak imbas

Docker ialah alat virtualisasi biasa untuk banyak pembangun dan pentadbir sistem. Ia boleh membungkus banyak aplikasi ke dalam bekas yang boleh dilaksanakan pada semua platform tanpa pengubahsuaian. Walau bagaimanapun, dalam beberapa senario aplikasi, pengguna perlu menggunakan port bersiri atau peranti bersiri Jadi bolehkah port bersiri maya Docker?

Dalam sistem pengendalian Linux, peranti port bersiri diwakili oleh fail peranti /dev/ttyS0 ke /dev/ttyS3. Ia boleh digunakan untuk menyambungkan peranti seperti pencetak, modem, meter digital dan banyak lagi. Port bersiri ialah kaedah komunikasi yang mudah dan boleh dipercayai. Walau bagaimanapun, dalam Docker, bekas Docker tidak mempunyai peranti perkakasan fizikalnya sendiri, jadi peranti port bersiri fizikal tidak boleh digunakan secara lalai.

Walau bagaimanapun, Docker menyediakan mekanisme yang dipanggil "pemetaan peranti" untuk memetakan peranti maya atau fizikal pada hos ke dalam bekas Docker. Dalam kes ini, anda boleh mensimulasikan komunikasi bersiri dengan memetakan peranti bersiri pada mesin hos ke dalam bekas Docker.

Pemetaan peranti boleh dicapai dengan menambahkan pilihan "--device" apabila memulakan bekas Docker. Sebagai contoh, arahan berikut memetakan peranti /dev/ttyUSB0 ke dalam fail peranti /dev/ttyUSB0 bekas Docker:

$ sudo docker run -it --name mycontainer --device=/dev/ttyUSB0 ubuntu:latest

Selepas memulakan bekas, jalankan arahan berikut di dalam bekas untuk mengesahkan bahawa siri port berada di dalam bekas Tersedia:

$ ls -l /dev/ttyUSB0

Menjalankan arahan berikut di dalam bekas Docker akan cuba membuka peranti bersiri:

$ minicom -D /dev/ttyUSB0

Jika anda belum memasang pemacu bersiri pada hos, bekas itu tidak akan mempunyai akses kepadanya sama ada peranti. Oleh itu, sebelum memulakan bekas, pasang pemacu yang diperlukan.

Selain itu, walaupun terdapat kemungkinan untuk menggunakan port bersiri dalam bekas Docker menggunakan pemetaan peranti, ia bukanlah penyelesaian yang ideal kerana pemetaan peranti akan menjadi sangat rumit jika anda perlu menyambungkan berbilang peranti bersiri pada masa yang sama. Dalam kes ini, penyelesaian yang lebih baik ialah menggunakan port bersiri maya.

Port bersiri maya ialah kaedah mensimulasikan komunikasi bersiri dengan memetakan peranti bersiri hos kepada peranti bersiri maya. Peranti bersiri maya ini kelihatan seperti peranti bersiri sebenar, tetapi ia sebenarnya hanyalah peranti bersiri sebenar yang menghantar data kepada hos. Dalam bekas Docker, anda boleh menggunakan alatan seperti socat atau ttyd untuk mencipta peranti bersiri maya.

Berikut ialah arahan untuk menggunakan socat untuk mencipta peranti bersiri maya:

$ sudo socat pty,link=/dev/ttyS0,raw,echo=0 pty,link=/dev/ttyS1,raw,echo=0

Selepas menjalankan arahan ini, socat akan mencipta dua peranti bersiri maya /dev/ttyS0 dan /dev/ ttyS1. Boleh digunakan untuk mensimulasikan komunikasi bersiri.

Kemudian, apabila memulakan bekas Docker, gunakan arahan berikut untuk memetakan port bersiri maya ke dalam bekas:

$ sudo docker run -it --name mycontainer -v /dev/ttyS0:/dev/ttyS0 ubuntu:latest

Di dalam bekas, anda boleh cuba membuka /dev/ peranti ttyS0 untuk komunikasi bersiri.

Ringkasan

Walaupun Docker tidak menyokong peranti bersiri secara lalai, anda boleh menggunakan pemetaan peranti atau peranti bersiri maya untuk mensimulasikan komunikasi bersiri. Apabila memilih penyelesaian, sila ambil perhatian bahawa pemetaan peranti boleh menjadi sangat menyusahkan apabila menyambungkan berbilang peranti bersiri, manakala menggunakan port bersiri maya boleh mencapai berbilang sambungan port bersiri dengan mudah.

Atas ialah kandungan terperinci Bolehkah pelabuhan bersiri maya buruh pelabuhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn