2016-05-17 15 views
9

Gần đây, một native docker client cho Windows đã được phát hành (> = Windows 7).Có thể truy cập thiết bị phần cứng bằng hình ảnh docker trong Windows không?

Tôi tự hỏi: có thể chuyển tiếp quyền truy cập vào thiết bị thực, chạy Windows dưới dạng máy chủ không?

Với một loạt * nix, điều này có vẻ là có thể với cú pháp như sau:

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

(như đề xuất here) mà sẽ chuyển tiếp các thiết bị USB /dev/ttyUSB0 trên một hệ thống * nix với những hình ảnh Docker. Mô tả về cờ --device có thể được tìm thấy trong số docker docs.

Cú pháp cho máy chủ Windows sẽ là gì?

+0

Không ai? Nó chỉ là không thể, hoặc phần sai? – Pascal

Trả lời

3

Thiết bị USB Windows hiện không khả dụng cho vùng chứa Docker chạy với Docker cho Windows.

Được trả lời bởi nhân viên bến tàu vào ngày 7 tháng 7 năm 2017 trong diễn đàn đế.

https://forums.docker.com/t/exposing-docker-to-usb-device-in-windows-10-with-docker-toolbox/29290/3

Câu trả lời này là có khả năng bị lỗi thời trong một thời gian, miễn là chúng sẽ cho phép tính năng này bằng cách nào đó.

0

Đây là thực tiễn không tốt vì nó đi ngược lại triết lý thiết kế của các vùng chứa.

Nếu bạn thấy mình cần truy cập vào thiết bị phần cứng, tốt hơn nên xem xét việc ảo hóa đầy đủ như VMware, Hyper-V, KVM/QEMU, Xen và vv.

Tuy nhiên, cách "thích hợp" là thiết kế hệ thống của bạn khi phần cứng được tóm tắt thành dịch vụ mạng. Theo cách này, bạn triển khai dịch vụ tới các máy vật lý mà phần cứng được gắn vào và gọi chúng qua mạng. Tôi không biết nếu điều này là có thể trong trường hợp của bạn, nhưng decopling như vậy cung cấp lợi thế kiến ​​trúc đáng kể.

+0

Không thể thấy tại sao nó sẽ chống lại triết lý. Theo hiểu biết của tôi, một container cung cấp một dịch vụ trong một môi trường xác định. Nếu dịch vụ yêu cầu phần cứng, tôi sẽ tự nhiên đặt nó vào môi trường đó. Tất nhiên một dịch vụ như vậy chỉ có thể chạy một lần. Ví dụ cung cấp mức độ lấp đầy của một máy pha cà phê. Trong trường hợp đó, thùng chứa kết nối với máy sẽ tách các bộ sưu tập có thể có của thùng chứa khỏi phần cứng cung cấp mức lấp đầy. – Pascal

+0

Docker về cơ bản là một chroot tù trên steroid. Nó chia sẻ hạt nhân với máy chủ, và với nó, các thiết bị phần cứng. Đây là sự khác biệt cơ bản giữa container và ảo hóa. Bạn chắc chắn có thể tranh luận rằng docker nên được phần cứng thuyết bất khả tri (tôi không khuyến khích bạn thử), nhưng tôi sợ sự pha trộn của các lớp kiến ​​trúc có khả năng gây ra cho bạn một nhức đầu. YMMV. – jurez

Các vấn đề liên quan