docker websiteのこのチュートリアルによると、コンテナを起動すると、/Users/username
.
私の現在の問題:
しかし、私の学校では、私$HOME
は .com にありません。また、(リンクのチュートリアルの/Users
ように) コンテナーにボリュームを直接マウントしようとすると、マウントdocker run -d -P -v $HOME/site:/usr/share/nginx/html --name mysite nginx
されたボリュームを介してファイルを変更できません。だから私$HOME
は自動的に共有されていないと思います。
しかし、実行すると次のdocker instpect mysite
ようになります:
"HostConfig": {
"Binds": [
"/nfs/zfs-student-3/users/vmonteco/site:/usr/share/nginx/html"
],
と
"Mounts": [
{
"Source": "/nfs/zfs-student-3/users/vmonteco/site",
"Destination": "/usr/share/nginx/html",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
私の質問は単にこれです:
ディレクトリを VM ホスティング Docker (ここでは virtualbox) と手動で共有して、ボリュームのマウント ポイントとして使用するにはどうすればよいですか?
これは、非推奨になる前に Boot2docker で行った方法です。
boot2dockerを使用すると、次のようなものを実行できます。
SHAREDIR=$HOME/share
# creating share folder.
mkdir $SHAREDIR
# mount shared folder while relaunching boot2docker :
boot2docker --vbox-share="$SHAREDIR=share" up
echo "Creating and mounting \"share\" directory in boot2docker VM."
boot2docker ssh "sudo mkdir /share; sudo mount -t vboxsf share /share"
# running the container :
docker run -ti --rm -v /share:/share -v /Users:/Users base/archlinux sh
そして、それはうまくいきました。
しかし、現在boot2dockerは廃止されており、現在使用しなければならない VM でこれを行う方法が見つかりませんでした (virtualbox を使用しています)。
私がよく理解していれば、boot2docker と同じように動作するはずです:
1 2
[directory from OSX] <===> [VM directory (the VM replaces Boot2docker)] <===> [container directory]
今でも機能しないのはポイント[1]だけであることをまだよく理解している場合、これは boot2docker と共有したばかりの小さなスクリプトの中間部分によって処理されました。
しかし、どうすれば今できるでしょうか?