でドッカー画像内の\ユーザー。自動的にマウントホストフォルダ:私は&が<strong>最小限のユーザー入力</strong>でWindows上でいくつかのドッカーコンテナを管理</strong>をインストールし、自動的に<strong>する必要があるプログラムを持っているWindowsの
自動的にの設定任意のWindowsフォルダをマウントするドッカー。これは、クリーンインストールから行う必要があります。ここでは、Docker VMは作成済みであると想定できません。
DockerはデフォルトでC:\ UsersのほぼすべてのフォルダをBoot2Dockerイメージにマウントすることができ、Dockerイメージ自体にマウントすることができます。
私は他のフォルダを使うことができるように、しかし "VBoxManage.exe run"、copytoなどのコマンドはBoot2Docker上では動作しないように、VM外部からデフォルトのマウントスクリプトを自動的に変更したい私が持っている他のLinux VMとは異なります。
解決策を探すにあたって、私はpy-vboxを見つけました。これにより、VirtualBox APIを使用して簡単にキーボードイベントをコンソールに送信できます。直接コンソールセッションも可能ですが、VBoxManage.exeのように失敗します。だから、これは私がセットアップするために余分なボリュームをマウントするスクリプトをキーボードの上に
echo command >> /c/script.sh
多くのコマンドを送信することで終わりました。より良い方法がありますか?
これが必要な人にとって、ここでは非常に単純化されたバージョンがあります。最初の2ビットは古い.batファイルなので、誰にでも適用されます。簡略化されたマウントスクリプトを書くために、今、Pythonスクリプトの簡易版を
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
docker-machine create --driver virtualbox my-docker-vm
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" sharedfolder add "my-docker-vm" --name "c/myfolder" --hostpath "c:\myfolder" --automount
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "my-docker-vm" VBoxInternal2/SharedFoldersEnableSymlinksCreate/c/myfolder 1
その後、ドッキングウィンドウVMが起動されなければならない...
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm --type=headless my-docker-vm
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
docker-machine env --shell cmd my-docker-vm > temp.cmd
call temp.cmd
del temp.cmd
:まず、私たちのドッキングウィンドウVMを作成しますVMは、キーボードを介してPY-VBOXを用いてコメントで説明したように
import virtualbox
script = """\n\
echo if [ ! -d /c/myfolder ] > /c/script.sh\n\
echo then >> /c/script.sh\n\
echo mkdir -p /c/myfolder >> /c/script.sh\n\
echo mount -t vboxsf c/myfolder /c/myfolder >> /c/script.sh\n\
echo fi >> /c/script.sh\n\
chmod +x /c/script.sh\n\
/bin/sh /c/script.sh\n\
rm /c/script.sh\n\
"""
my_vm_name = 'my-docker-vm'
def mount_folder():
vbox = virtualbox.VirtualBox()
is_there = False
for vmname in vbox.machines:
if str(vmname) == my_vm_name:
is_there = True
break
if is_there is False:
raise whatever
return
vm = vbox.find_machine(my_vm_name)
session = vm.create_session()
session.console.keyboard.put_keys(script)
このリンクがhttp://www.incrediblemolk.com/sharing-a-windows-folder-with-the-boot2docker-vm/に役立つかどうかを確認してください。コマンドは 'vboxmanage sharedfolder'です –
@warmoverflowありがとうございますが、私はすでにこれを知っています。このソリューションはc:\ usersへのアクセスを削除し、少なくとも私のマシン上では最新バージョンでは動作しないようです。 –
なぜこれらのコマンドをVMから実行する必要がありますか? VMで行う必要があるのは、 '/ var/lib/boot2docker/bootlocal.sh'を変更することだけです。そして、 'VBoxManage.exe sharedfolder add'は、VMが作成されたがまだ開始されていないときに行われます。 http://stackoverflow.com/a/35498478/6309 – VonC