[英]Boot2Docker on Mac - Accessing Local Files
我剛剛在我的Mac上設置了boot2docker。 如何在我的Mac上安裝本地目錄,以便可以一直訪問正在運行的Docker容器? 謝謝你的幫助!
截至2014年10月16日,Docker支持無縫地在/ Users路徑中安裝目錄。
來自Docker博客 :
在此版本中,我們正在解決最常見的問題:在Mac和容器之間共享目錄。 使用Docker 1.3和相應版本的boot2docker,主機安裝的卷現在可以按照您期望的方式工作。
...請注意,仍然存在一些限制:例如,此功能僅限於boot2docker的虛擬機配置,無法動態管理,僅適用於/ Users中的目錄。 但是我們正在為改進卷管理做出令人興奮的貢獻,因此預計這個領域將在接下來的幾個版本中大幅改進。
用法示例: $ docker run -v /Users/bob/myapp/src:/src [...]
請參閱https://github.com/boot2docker/boot2docker/issues/678 。
與VM共享您的文件夾:
VBoxManage sharedfolder add boot2docker-vm --name /tmp/Work --hostpath /CODE --automount
基於信息發現未bootscript.sh
,你知道,虛擬機將運行bootlocal.sh
腳本是在/var/lib/boot2docker
文件夾,其中的數據仍然存在。
添加文件/var/lib/boot2docker/bootlocal.sh
#!/bin/sh
# bash is not available!
mkdir -p /CODE
mount -t vboxsf /tmp/Work /CODE
然后chmod +x /var/lib/boot2docker/bootlocal.sh
並重啟boot2docker-vm
vm。
boot2docker與VirtualBox Guest Additions一起使用
如何將/ Users掛載到boot2docker
tl; dr使用VirtualBox Guest Additions構建您自己的自定義boot2docker.iso(請參閱鏈接 )或下載http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guest-additions-v4.3.12.iso並保存到〜/ .boot2docker / boot2docker.iso。
正如Levi所說,/ Users目錄是自動掛載的。 在boot2docker和docker-machine中都是如此。 也就是說,如果你想在/ Users之外安裝任何東西,所有當前的答案都會談論Boot2docker。 由於現在已經棄用了docker-machine,這適用於docker-machine:
首先,ssh進入docker-machine vm並創建我們要映射到的文件夾:
docker-machine ssh $MACHINE_NAME "sudo mkdir -p \"$VOL_DIR\""
現在將文件夾共享到VirtualBox:
WORKDIR=$(basename "$VOL_DIR")
vboxmanage sharedfolder add "$MACHINE_NAME" --name "$WORKDIR" --hostpath "$VOL_DIR" --transient
最后,再次進入docker-machine並掛載我們剛剛共享的文件夾:
docker-machine ssh $MACHINE_NAME "sudo mount -t vboxsf -o uid=\"$U\",gid=\"$G\" \"$WORKDIR\" \"$VOL_DIR\""
注意:對於UID和GID,只要它們尚未被采用,您基本上可以使用任何整數。
這是在OS X El Capitan上測試的docker-machine 0.4.1和docker 1.8.3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.