Dockerを学び始めたばかりで、Windowsでboot2dockerを使用して簡単なセットアップを取得しようとしています。プロジェクトファイルをboot2docker VMからアクセスできるようにする方法は、オンラインのチュートリアルやサンプルで見つけることができませんでした。
Boot2dockerをダウンロードし、インストールして起動することに成功しました。そこにsshしてhello world Dockerサンプルを実行することもできるので、VMにDockerが正常にインストールされていることがわかります。
今、質問:boot2dockerでDockerfile
とアプリケーションファイルを取得する方法VM = Dockerコンテナを構築できるように?
つまり、boot2docker VMからこれを実行しようとしています。
$ cd /some-directory-from-my-Host-os
$ docker build .
https://github.com/boot2docker/boot2docker#folder-sharing の指示に従ってSAMBA共有をセットアップしてみたところ、Windowsから\\192.168.59.103\data
しかし、boot2docker VM内から同じディレクトリにアクセスする方法はわかりません。
答えは明白かもしれませんが、その壁にぶつかるのは私だけではないと確信しています。ご協力いただきありがとうございます!
Boot2docker 1.3以降、共有フォルダーをマウントする機能が追加されたため、VMはdevフォルダーを直接共有できます。詳細はこちら: https://github.com/ boot2docker/boot2docker#virtualbox-guest-additions
それが窓の下で役立つかどうかわからない。ただし、Macの場合:
boot2dockerとVirtualBox Guest Additions
/Usersをboot2dockerにマウントする方法
tl; dr VirtualBox Guest Additions( link を参照)または http://static.dockerfiles.io/boot2docker-v1.0.1-virtualbox-guestを使用して独自のカスタムboot2docker.isoを構築します-additions-v4.3.12.iso そして〜/ .boot2docker/boot2docker.isoに保存します。
現在の進捗状況を確認し、sambaコンテナが実行されていると仮定すると、Boot2dockerの/ dataフォルダーへのパスを見つけることができますVM
$ docker inspect <samba_container_id>
これにより、コンテナ構成の詳細が一覧表示されます。一番下の近くに表示されるはずです:
「ボリューム」:{
"/data": "/mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
これがboot2docker vm/dataパスです。そのフォルダにcdするだけです
$ cd /mnt/sda1/var/lib/docker/vfs/dir/<long_id_here>
Windowsエクスプローラーから、次の場所に移動します。
\\192.168.59.103\data
これで、いくつかのファイルをそのデータフォルダーに貼り付け/コピー/作成できるようになり、Boot2docker VM at path:/mnt/sda1/var/lib/docker/vfs/dir/<long_folder_id_here>
私見の最善の方法はscpを使用することです。 sshできるので、winscpを使用してDockerfileをVMに送信できます。
ファイルをVMにsshします
dockerfile=$(cat LocalDockerfile)
boot2docker ssh "echo '$dockerfile' > Dockerfile"
ここに書きました http://micahasmith.github.io/2014/11/07/copying-files-into-boot2docker/
Boot2Dockerでディレクトリ「cd/c」を変更すると、Windowsの「ユーザー」フォルダが表示されます。共有したいコンテンツを好みのユーザーフォルダーに入れます。
このボックスでvagrantを使用します: https://vagrantcloud.com/yungsang/boot2docker
そして、Vagrantファイルを変更してWindowsで(自動)rsyncを使用しました:
rsync_args = ["--verbose", "--archive", "--delete", "-z"]
rsync_auto = true
rsync_exclude = [".vagrant/"]
config.vm.synced_folder ".", "/vagrant", rsync__args: rsync_args, rsync__exclude: rsync_exclude, rsync__auto: rsync_auto, type: "rsync"