Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
106
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Docker for Windows (Hyper-V) を試してみたよ

はじめに

Docker for Mac/Windowsのinvite tokenが届いたので試して見ました。

これまでPCでDockerを動かすために、Docker Toolboxが提供されてきましたが、それに変わるものです。たぶん。
DockerのホストVMをVirtualBoxではなく、OS nativeの機能で動かしてくしてくれます。WindowsならHyper-Vですね。
トラブルの多いVirtualBoxから開放されるのです\(^O^)/

以下、Windows版のBeta 9について記載します。

準備

ダウンロード

Docker for Mac/WindowsはPrivate Beta中です。
まだ登録していない方は、Docker for Mac/Windowsから登録しましょう。
そのうちinvitationメールが届きます。
メールにダウンロードページのリンクがありますので、ダウンロードしましょう。

インストールの前に

Docker for Windowsをインストールするわけですが、その前に、Hyper-Vを無効化している方は有効化しましょう。
Docker Toolboxを使用している方はHyper-Vを無効にしているはずですので、有効化を忘れずに。
管理者で以下のコマンドを投入した後に、Windowsを再起動すればOKです。

bcdedit /set hypervisorlaunchtype auto

Docker Toolboxを使用中の方は、たぶんアンインストールしなくても大丈夫だと思います。

インストール

ダウンロードしたインストーラを実行するだけです。
Docker for Windowsの初回起動時にinvite tokenの入力を求められますので、メールに記載されているtokenを入力しましょう。

2016-05-03.png

GUIを試してみる

Docker for Windowsを起動すると、タスクトレイにクジラさんが常駐します。
Hyper-Vマネージャを確認すると、DockerのVMが登録されているはずです。

2016-05-03 (5).png

タスクトレイのメニューから色々試してみます。

まずは、Dashboard。
Kitematicのダウンロードページへのリンクがあるだけです。
Kitematicは手動で起動する必要があります。どこかにショートカットを作っておきましょう。
そのうちタスクトレイのメニューから起動できるようになるのかな?

2016-05-03 (1).png

次はSettings。
共有ドライブの設定とかDocker Toolboxからのインポートとか出来るみたいです。

2016-05-03 (2).png

Manage shared drivesをクリックするとこんなのが出てきます。
デフォルトでは共有されていないみたいですので、必要に応じて設定しましょう。

2016-05-03 (3).png

Share Drivesウィンドウを閉じて、次はImport Toolbox default machine contentです。
Importをクリックすると、Docker Toolboxで作成したイメージとコンテナがインポートされます。
作り直さなくて良いのは嬉しいです。

2016-05-03 (4).png

CLIを試してみる

コマンドプロンプトを起動してDockerのCLIを試してみます。
まずはdocker psを。

> docker ps
An error occurred trying to connect: Get https://192.168.99.100:2376/v1.23/containers/json: dial tcp 192.168.99.100:2376: connectex: A conn
ection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because
 connected host has failed to respond.

・・・あれ。

(つд⊂)

・・・

( ゚д゚ )

コマンドが通らないのですが・・・。
Kitematicからだと、なぜかコンテナを起動できる・・・。

ここでちょっとはまっていたのですが、よく見るとなぜか192.168.99.100にアクセスしてるんですね。
192.168.99.100はVirtualBoxのDockerホストVMのアドレスです。

はい、どう見ても環境変数が悪さしてます。
環境変数DOCKER_XXXをすべて削除してリトライ。

> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

無事にコマンドが通りました\(^O^)/
あとは、これまで通り色々するだけです。

DockerホストVMは、ホスト名docker.localでアクセスできるようです。
IPアドレスを覚えなくて良いのでちょっと楽です。

コンテナから外部ネットワークに接続

無事にDockerを使えるようになりましたが、デフォルトではコンテナから外部のネットワークに接続することが出来ません。
外部ネットワークに接続するためには、Hyper-Vマネージャからネットワークアダプタを追加する必要があります。

Hyper-Vマネージャを起動したら、右の一覧から仮想スイッチマネージャを起動します。

2016-05-03 (5).png

左の一覧から新しい仮想ネットワークスイッチを選択、外部を選択して仮想スイッチの作成を実行します。

2016-05-03 (6).png

適当に名前を付けて、あとはデフォルトでも大丈夫だと思います。
NICが複数ある方は、お好きなのを選んでください。

2016-05-03 (9).png

もとのHyper-Vマネージャに戻って、仮想マシンを右クリック、設定を起動します。
左の一覧からハードウェアの追加を選択、ネットワークアダプタを追加します。

2016-05-03 (7).png

追加されたネットワークアダプタの仮想スイッチで、先ほど作成した外部接続の仮想ネットワークスイッチを選択します。

2016-05-03 (8).png

あとは、VMを再起動すれば外部ネットワークに接続できるようになります。

終わりに

VirtualBoxから解放されたおかげで、色々と捗りそうです。
あとは、Kitematicが貧弱なのでもっとリッチになってくれると嬉しいです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
106
Help us understand the problem. What are the problem?