はじめに
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を入力しましょう。
GUIを試してみる
Docker for Windowsを起動すると、タスクトレイにクジラさんが常駐します。
Hyper-Vマネージャを確認すると、DockerのVMが登録されているはずです。
タスクトレイのメニューから色々試してみます。
まずは、Dashboard。
Kitematicのダウンロードページへのリンクがあるだけです。
Kitematicは手動で起動する必要があります。どこかにショートカットを作っておきましょう。
そのうちタスクトレイのメニューから起動できるようになるのかな?
次はSettings。
共有ドライブの設定とかDocker Toolboxからのインポートとか出来るみたいです。
Manage shared drivesをクリックするとこんなのが出てきます。
デフォルトでは共有されていないみたいですので、必要に応じて設定しましょう。
Share Drivesウィンドウを閉じて、次はImport Toolbox default machine contentです。
Importをクリックすると、Docker Toolboxで作成したイメージとコンテナがインポートされます。
作り直さなくて良いのは嬉しいです。
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マネージャを起動したら、右の一覧から仮想スイッチマネージャを起動します。
左の一覧から新しい仮想ネットワークスイッチを選択、外部を選択して仮想スイッチの作成を実行します。
適当に名前を付けて、あとはデフォルトでも大丈夫だと思います。
NICが複数ある方は、お好きなのを選んでください。
もとのHyper-Vマネージャに戻って、仮想マシンを右クリック、設定を起動します。
左の一覧からハードウェアの追加を選択、ネットワークアダプタを追加します。
追加されたネットワークアダプタの仮想スイッチで、先ほど作成した外部接続の仮想ネットワークスイッチを選択します。
あとは、VMを再起動すれば外部ネットワークに接続できるようになります。
終わりに
VirtualBoxから解放されたおかげで、色々と捗りそうです。
あとは、Kitematicが貧弱なのでもっとリッチになってくれると嬉しいです。