دسترسی به USB میزبان در داکر

mohsen2 هفته قبل
ارسال شده در
docker

استفاده از فلگ --device:

یکی از روش‌های متداول برای فراهم کردن دسترسی به دستگاه‌های USB، استفاده از فلگ --device است. به عنوان مثال، برای دسترسی به دستگاه /dev/ttyUSB0، می‌توانید از دستور زیر استفاده کنید:

      docker run -t -i --device=/dev/ttyUSB0 ubuntu bash

    

این روش به شما اجازه می‌دهد فقط به یک دستگاه خاص دسترسی داشته باشید و نیازی به دسترسی به تمامی دستگاه‌ها نیست.

استفاده از حالت --privileged:

اگر می‌خواهید به تمامی دستگاه‌ها در زیرپوشه /dev/bus/usb دسترسی داشته باشید، می‌توانید حالت --privileged را فعال کرده و آورده‌های USB را به کانتینر متصل کنید:

      docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb ubuntu bash

    

توجه داشته باشید که این گزینه به طور بالقوه می‌تواند امنیت را به خطر بیاندازد، زیرا دسترسی‌های بسیاری را فراهم می‌آورد.

استفاده از cgroup devices.allow:

برای استفاده از دستگاه‌هایی که بعد از اجرای کانتینر به سیستم وصل شده‌اند، می‌توانید از روش cgroup استفاده کنید. برای این کار، باید شناسه دستگاه را پیدا کرده و آن را به devices.allow اضافه کنید:

      echo 'c 188:* rwm' > /sys/fs/cgroup/devices/docker/$A*/devices.allow

    

سپس کانتینر را با استفاده از دستور زیر راه‌اندازی کنید:

      docker run -v /dev/bus:/dev/bus:ro -v /dev/serial:/dev/serial:ro -i -t --entrypoint /bin/bash debian:amd64

    

با این روش، دسترسی به هر دستگاهی که بعد از شروع کانتینر متصل شده باشد، فراهم می‌شود.

نکات اضافی

  • توجه به امنیت: در حالی که استفاده از --privileged و -v /dev:/dev می‌تواند به راحتی دسترسی به دستگاه‌ها را فراهم کند، این گزینه‌ها همچنین ممکن است منجر به دسترسی ناخواسته به سایر دستگاه‌های حساس شوند.
  • دستگاه‌های متصل شده مجدد: اگر USB شما unplug و دوباره plug شود، با استفاده از پرچم --device ممکن است نیاز باشد که کانتینر را دوباره راه‌اندازی کنید.
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!