Gắn một thư mục từ máy chủ lưu trữ trong boot2docker cho Windows


11

Tôi đang chạy docker 1.6 và boot2dockertrên hộp Windows 8.1. Khi tôi sử dụng phím tắt Khởi động Boot2Docker, nó sẽ đưa tôi đến dấu nhắc bash cygwin nơi tôi có thể chạy các lệnh docker nguyên bản.

Tôi gặp sự cố khi gắn thư mục từ thư mục người dùng của mình. Tôi đã thử:

$ docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Tôi nhận được lỗi:

invalid value "C:\\Users\\someone\\AppData\\Roaming/Bitcoin:/datadir"
for flag -v: \Users\someone\AppData\Roaming/Bitcoin:/datadir 
is not an absolute path 
See 'c:\Program Files\Boot2DockeForWindows\docker.exe run --help'.

Tôi nhận được kết quả tương tự khi tôi gọi nó theo những cách sau:

$ docker run -d --name abe -v "$APPDATA/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v "/c/users/someone/AppData/Roaming/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v ~/AppData/Roaming/Bitcoin:/datadir poliver/bitcoin-abe

Tôi cũng đã thử:

$ docker run -d --name abe -v ~/APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Và tôi đã nhận được lỗi:

FATA[0000] Error response from daemon: cannot bind mount volume: ~\AppData\Bitcoin volume paths must be absolute.

Có vẻ như cygwin bash đang thay thế /bằng \và sau đó docker phân tích cú pháp đối số được truyền đến -vvà không thể chấp nhận nó.


Khi cài đặt boot2docker, lệnh "ls / c / Users" liệt kê thư mục Windows 8.1 C: \ Users của tôi. Bạn có cần phải gắn kết các vị trí khác?
Wilson Gibbins

Tôi chắc chắn có thể nhìn thấy /c/Userstừ máy ảo linux boot2docker (máy chủ). Nhưng tôi cần poliver / Bitcoin-abe container để gắn kết một thư mục cụ thể từ /c/Userstại /datadirđiểm lắp trên thùng sơn.
Paul Oliver

Tôi dường như cũng gặp vấn đề tương tự không thể gắn kết một thư mục máy chủ. $ docker run -d -v /c/Users/310145787/Desktop/mongo:/data/db mongo invalid value "c:\\Users\\310145787\\Desktop\\mongo;C:\\Program Files (x86)\\Git\\data\\db" for flag -v: \Users\310145787\Desktop\mongo;C:\Program Files (x86)\Git\data\db is not an absolute path
Marco

Bạn đã có được một giải pháp cho vấn đề của bạn?
Marco

Xin lỗi Marco, chưa có giải pháp nào. :(
Paul Oliver

Câu trả lời:


12

Nếu bạn muốn gắn $APPDATAmáy chủ Windows của mình /datadirvào bộ chứa docker, thay vì lệnh dưới đây:

docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Bạn có thể phát hành:

docker run -d --name abe -v //c/Users/YOUR_USER_NAME/$APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

//c/Users/PATH_TO_DIR là chìa khóa ở đây cho thư mục Windows

$APPDATAThư mục của bạn PHẢI nằm trên /c/Users/Your_User_Namethư mục và nó không thể nằm ở những nơi khác. (ví dụ: D:/$APPDATAtrên phân vùng D.)


6

xem: https://github.com/docker/docker/issues/12590

Nếu bạn đang sử dụng git bash trên windows, msysgit chuyển đổi các đường dẫn như / c / users thành c: \ users (không phải thứ bạn muốn vì đường dẫn bên trong VM boot2docker là / c / Users)

Trên cmd.exe / powershell bạn không nên gặp vấn đề này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.