Docker-machine tự động tính toán thư mục người dùng ... Nhưng đôi khi chỉ như vậy là chưa đủ.
Tôi không biết về docker 1.6, nhưng trong 1.8, bạn CÓ THỂ thêm một mount bổ sung vào docker-machine
Thêm điểm gắn máy ảo (phần 1)
CLI : (Chỉ hoạt động khi máy dừng)
VBoxManage sharedfolder add <machine name/id> --name <mount_name> --hostpath <host_dir> --automount
Vì vậy, một ví dụ trong windows sẽ là
/c/Program\ Files/Oracle/VirtualBox/VBoxManage.exe sharedfolder add default --name e --hostpath 'e:\' --automount
GUI : (KHÔNG yêu cầu dừng máy)
- Khởi động "Oracle VM VirtualBox Manager"
- Nhấp chuột phải
<machine name>
(mặc định)
- Cài đặt ...
- Thư mục chia sẻ
- Thư mục + Biểu tượng ở bên phải (Thêm Chia sẻ)
- Đường dẫn thư mục:
<host dir>
(e :)
- Tên thư mục:
<mount name>
(e)
- Kiểm tra "Tự động gắn kết" và "Đặt vĩnh viễn" (Chỉ đọc nếu bạn muốn ...) (Tự động gắn kết hiện tại là vô nghĩa ...)
Gắn trong boot2docker (phần 2)
Gắn kết thủ công trong boot2docker :
- Có nhiều cách khác nhau để đăng nhập, sử dụng "Show" trong "Oracle VM VirtualBox Manager" hoặc ssh / putty vào docker theo địa chỉ IP
docker-machine ip default
, v.v.
sudo mkdir -p <local_dir>
sudo mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir>
Nhưng điều này chỉ tốt cho đến khi bạn khởi động lại máy và khi đó mount bị mất ...
Thêm một số tự động vào boot2docker :
Trong khi đăng nhập vào máy
- Chỉnh sửa / tạo (với tư cách là người chủ)
/mnt/sda1/var/lib/boot2docker/bootlocal.sh
, sda1 có thể khác với bạn ...
Thêm vào
mkdir -p <local_dir>
mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir>
Với những thay đổi này, bạn sẽ có một điểm gắn kết mới. Đây là một trong số ít các tệp tôi có thể tìm thấy được gọi khi khởi động và liên tục. Cho đến khi có một giải pháp tốt hơn, điều này sẽ hoạt động.
Phương pháp cũ: Ít được khuyến nghị hơn , nhưng được để như một phương pháp thay thế
Phương án cuối cùng , bạn có thể sử dụng giải pháp thay thế tẻ nhạt hơn một chút và bạn chỉ có thể sửa đổi hình ảnh khởi động.
git -c core.autocrlf=false clone https://github.com/boot2docker/boot2docker.git
cd boot2docker
git -c core.autocrlf=false checkout v1.8.1
# hoặc phiên bản thích hợp của bạn
- Biên tập
rootfs/etc/rc.d/automount-shares
Thêm try_mount_share <local_dir> <mount_name>
dòng ngay trước fi ở cuối. Ví dụ
try_mount_share /e e
Chỉ cần đảm bảo không đặt thành bất kỳ thứ gì hệ điều hành cần, như / bin, v.v.
docker build -t boot2docker .
# Quá trình này sẽ mất khoảng một giờ trong lần đầu tiên :(
docker run --rm boot2docker > boot2docker.iso
- Sao lưu boot2docker.iso cũ và sao chép cái mới của bạn vào vị trí của nó, trong ~ / .docker / machine / machine /
Điều này thực sự hiệu quả, nó chỉ dài và phức tạp
phiên bản docker 1.8.1, docker-máy phiên bản 0.4.0