web-dev-qa-db-ja.com

ホストとローカル共有フォルダーをマウントするboot2docker起動スクリプト

Win7でboot2docker 1.3を実行しています。

共有フォルダを接続したい。

VirtualBox Managerのイメージプロパティ->共有フォルダーで、必要なフォルダーを追加し、「c/shared」という名前を付けました。 「自動マウント」および「永続化」ボックスがチェックされています。

ただし、boot2dockerが起動しても、マウントされません。追加する必要があります:

Sudo mount -t vboxsf c/shared /c/shared

それが現れるために。 Dockerを使用するたびに必要になるので、起動時に実行するか、すでに実行しているだけにしたいのです。だから、追加できる起動スクリプトがあるかと思ったのですが、どこにあるのかわかりません。

ありがとう

編集:これが別の質問である MacのBoot2Docker-ローカルファイルへのアクセス の複製であることを私に怒鳴っています。 OSXの/ UserやWindowsの/ c/Usersなど、デフォルトではないフォルダをマウントしたいと思いました。そして、私は特に起動スクリプトを求めています。

23
phazei

/var/lib/boot2docker/bootlocal.shはおそらくあなたのニーズに合うでしょう、それは最初のスクリプト/opt/bootscripts.shによって実行されます

そしてbootscripts.sh/var/log/bootlocal.logに出力を配置します。以下のセグメントを参照してください(boot2docker 1.3.1バージョン)

# Allow local HD customisation
if [ -e /var/lib/boot2docker/bootlocal.sh ]; then
   /var/lib/boot2docker/bootlocal.sh > /var/log/bootlocal.log 2>&1 &
fi 

私の1つの使用例は

通常、sharedディレクトリを/c/Users/larry/sharedとして配置し、スクリプトを追加します

#/bin/bash
ln -s  /c/Users/larry/shared /home/docker/shared

したがって、毎回、ホストと同じようにboot2dockerで~/sharedにアクセスできます

参照 FAQ.md (@KCD提供)

19
Larry Cai

Boot2docker(Windows)を使用している場合は、以下を実行する必要があります。

まず、boot2docker VMの共有フォルダーを作成します。

"C:/Program Files/Oracle/VirtualBox/VBoxManage" sharedfolder add default -name some_shared_folder -hostpath /c/some/path/on/your/windows/box

#Then make this folder automount 
docker-machine ssh
vi /var/lib/boot2docker/profile

プロファイルファイルの最後に以下を追加します。

Sudo mkdir /windows_share
Sudo mount -t vboxsf some_shared_folder /windows_share

Docker-machineを再起動します

docker-machine restart

フォルダーの内容がboot2dockerに表示されることを確認します。

docker-machine ssh
ls -al /windows_share

これで、docker runまたはdocker-composeを使用してフォルダーをマウントできます。例えば:

docker run it --rm --volume /windows_share:/windows_share ubuntu /bin/bash
ls -al /windows_share

VMまたはWindowsの再起動後にプロファイルファイルの変更が失われた場合、以下を実行してください:

1)ファイルC:\ Program Files\Docker Toolbox\start.shを編集し、次の行をコメント化します。

#line number 44 (or somewhere around that)
yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}"

#change the line above to:
#  yes | "${DOCKER_MACHINE}" regenerate-certs "${VM}"
7
rgrebski

これであなたの助けをありがとう。新しいマウントにboot2docker "docker"ユーザーがアクセスできるようにするために、追加する必要のあるいくつかのフラグ:

Sudo mount -t vboxsf -o umask=0022,gid=50,uid=1000 Ext-HD /Volumes/Ext-HD
2
Keith McDuffee

ラリー・カイさんの指示ではうまくいきません。 「c:\ Program Files\Boot2Docker for Windows\start.sh」に変更を加えることができると思ったので、以下を追加します

eval "$(./boot2docker.exe shellinit 2>/dev/null | sed 's,\\,\\\\,g')"

あなたのマウントコマンド

eval "$(./boot2docker ssh 'Sudo mount -t vboxsf c/shared /c/shared')"

ここにコンテナーを開始するコマンドも追加します。

eval "$(docker start KDP)"

1
deathemperor