Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot pass --device=/dev/disk3 on macOS into Linux Docker? #3110

Closed
2 tasks done
kenorb opened this issue Jul 22, 2018 · 9 comments
Closed
2 tasks done

Cannot pass --device=/dev/disk3 on macOS into Linux Docker? #3110

kenorb opened this issue Jul 22, 2018 · 9 comments

Comments

@kenorb
Copy link

kenorb commented Jul 22, 2018

  • I have tried with the latest version of my channel (Stable or Edge)
  • I have uploaded Diagnostics
  • Diagnostics ID: D1F5CC9C-9C89-4621-8781-F9AC7308134F

Expected behavior

I'd like to pass /dev/disk3 device into Docker, so I'm running the following command:

docker run -it --device=/dev/disk3 --privileged ubuntu bash

or:

docker run -it --device=/dev/disk3:/dev/sdb --privileged ubuntu bash

then I expect to have access to this device inside the container, so it can be mounted (as ext4 in this case).

Actual behavior

$ docker run -it --device=/dev/disk3 --privileged ubuntu bash
# ls /dev/disk3
ls: cannot access '/dev/disk3': No such file or directory
# fdisk -l
Disk /dev/sda: 59.6 GiB, 63999836160 bytes, 124999680 sectors
Device     Boot Start       End   Sectors  Size Id Type
/dev/sda1  *     2048 124999679 124997632 59.6G 83 Linux

Another attempt:

$ docker run -it --device=/dev/disk3:/dev/sdb --privileged ubuntu bash
# ls /dev/sdb*
ls: cannot access '/dev/sdb*': No such file or directory
# fdisk -l
Disk /dev/sda: 59.6 GiB, 63999836160 bytes, 124999680 sectors
Device     Boot Start       End   Sectors  Size Id Type
/dev/sda1  *     2048 124999679 124997632 59.6G 83 Linux

The device is present on the macOS host:

$ diskutil list /dev/disk3
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *1.0 TB     disk3
   1:                      Linux                         1.0 TB     disk3s1

$ sudo fdisk /dev/disk3
Disk: /dev/disk3    geometry: 121601/255/63 [1953525167 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: 83 1023 254  63 - 1023 254  63 [         2 - 1953525165] Linux files*
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused      
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused   

but it's not present in the container after passing through --device parameter.

Information

  • macOS Version: 10.13.5
  • Engine: 18.03.1-ce
  • Compose: 1.21.1
  • Machine: 0.14.0

It's reproducible each time.

Diagnostic logs

No errors reported in the logs

Steps to reproduce the behavior

  1. Connect external USD HDD formatted with FS not readable by macOS, so it cannot be mounted, such as ext4.
  2. Run docker run -it --device=/dev/disk3 --privileged ubuntu bash (where /dev/disk3 is your device number on the host).

Related

@docker-robott
Copy link
Collaborator

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30d of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle stale

@SCherkass
Copy link

SCherkass commented Oct 21, 2018

+1 :)

Docker:

Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:21:31 2018
OS/Arch: darwin/amd64
Experimental: false

Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:29:02 2018
OS/Arch: linux/amd64
Experimental: true

macOS 10.14 Mojave

@tsal
Copy link

tsal commented Nov 25, 2018

Not sure if I can do this, but since this is still an issue (experiencing it myself with stable and edge):

/remove-lifecycle stale

@pgayvallet
Copy link

Hello,

Sorry for the late answer.

As the daemon runs inside a VM in Docker Desktop, it is not possible to actually share a mac host device with the container inside the VM, and this will most definitely never be possible.

@docker-robott
Copy link
Collaborator

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale comment.
Stale issues will be closed after an additional 30d of inactivity.

Prevent issues from auto-closing with an /lifecycle frozen comment.

If this issue is safe to close now please do so.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle stale

@d0p3fish
Copy link

Wontfix. Wow. Ok. But what about a small alert when using this?
People spending hours with this problems.

@gabriel-gn
Copy link

Well... I've spent a little time on this and came to this thread. Soon after I found it was on documentation. +1 On advising user that it cannot be done on mac/windows
https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container

@masto
Copy link

masto commented Jun 13, 2020

FWIW, I also lost about an hour of my life to finding this.

@docker-robott
Copy link
Collaborator

Closed issues are locked after 30 days of inactivity.
This helps our team focus on active issues.

If you have found a problem that seems similar to this, please open a new issue.

Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows.
/lifecycle locked

@docker docker locked and limited conversation to collaborators Jul 13, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants