主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windows 10でDocker Toolboxを入れてHyper-Vで使う

                
 テストのときにLinux環境を用意するために愛用しているDockerで、WindowsなどLinux以外の環境向けにDocker Toolboxというものがリリースされたらしい。
http://www.publickey1.jp/blog/15/docker_toolbox.html
 Linux以外の環境でDockerを使う手段の一つとしてこれまではBoot2Dockerというツールが使われていたが、これからのそういう目的のツールの更新はDocker Toolboxで行われるらしい。
 つい最近にここでBoot2Dockerをまるまる使わず、部分的に使ってHyper-Vで動かす記事を書いたところだった。Boot2Dockerは通常OracleのVirtualBoxを必要とするが、Hyper-Vを使っている環境ではCPUの仮想化機能を切り替えなければVirtualBoxを起動できないという手間がある。なのでHyper-Vを使った。
http://elicon.blog57.fc2.com/blog-entry-468.html
 ドキュメントを見るとDocker ToolboxはHyper-Vでも使えそうである。そういうわけで今回はDocker Toolboxをインストールしつつ、これをHyper-Vで動かしていこうと思う。

・Boot2DockerからDocker Machine(Docker Toolboxでインストールされるうちの一つ)への移行
 Linux以外の環境でDockerを扱うためのツールであるBoot2Dockerは、Dockerが内部で走っているLinuxを仮想マシンとして一つ立ち上げ、それをいじくりまわせるようになっていた。一つ。Docker Machineになってどうかわるかというと、立ち上げる仮想マシンが一つに限定されず、それに名前をつけて個別に状態を管理できるようになっている。
Boot2Docker: boot2docker ssh
Docker Machine: docker-machine ssh [machine name]
 上記のコマンドでBoot2Dockerの場合はインストール時に用意された仮想マシンが立ち上がってそこにSSH接続することになる。Docker Machineの場合はインストール後に仮想マシンを名前を与えて作成してあるとして、それを名前指定して動かして接続することになる。Dockerが内部で動く仮想マシンの作成や管理などが楽になるということ。

 インストールは実行ファイルを一つ落として、それを実行するだけである。ただこれを書いている時点ではWin10には未対応となっている。それでもGithubのIssuesなどを見るといくつかバグをつぶしていっているようである。試してみる(結果的に問題には出くわさなかった)。
https://www.docker.com/toolbox
 実行するとDocker Toolbox構成物としていくつかのアプリケーションがならぶ。選択できるようになっているので、Hyper-V使うからVirtualBoxいらんという場合はVirtualBoxについているチェックを外す(ぼくは最初は一応インストールしておいて、あとでそれだけアンインストールしたが)。

 インストールが終了したらPowerShellを開く。たぶんAdministratorで開いておかないと次に実行する仮想マシンのVHD作成でエラーが出る。
 Dockerが動く仮想マシンを作るためコマンドを実行する。コマンドのオプションとしてHyper-Vで動かすことを指定する。
docker-machine create -d hyper-v docker_machine
 仮想マシンができたらそれに接続してみる。
docker-machine ssh docker_machine

 便利に使うためにホストマシンでネットワーク公開しているディレクトリをマウントする。これは以前のBoot2Docker on Hyper-Vでもやった。
http://elicon.blog57.fc2.com/blog-entry-468.html
 まず下記の二行を実行してマウントが正しく行われるかチェック。
sudo mkdir -p /c/Users
sudo mount //[host's ip]/Users /c/Users -o username=[host user],password=[password]
 問題なければ/var/lib/boot2docker/bootlocal.shが起動時に実行されるのでこれを作成し、マウントコマンドを書いておく。そして再起動してもマウントが行われた状態になっているかチェック。仮想マシンで動いているOSではエディタはviが用意されている。viが苦手ならホストマシンでマウントされるディレクトリにあらかじめbootlocal.shを作って入れておき、マウントされたらそこからコピーして配置するのも手だろう。
 ここまで済んだら問題なく便利に使えるだろう。なにかのプロジェクトでDockerをすでに使っている人はそれをサンプルとして動かしてみるなど。

 1509072215210.jpg
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。