こんにちは、技術研究所の「どらを」です。

 

かなり今更感が否めないのですが、コンテナ型仮想化(というかDocker)について勉強を始めました。
事の始まりは、Redmineをフルカスタマイズしたい!という欲求が満たすために
とりあえず、Redmineをローカル環境に手軽に立てられないないかなと思い、Dockerに着目しました。
※Redmineを使い倒す!というブログは後日公開予定です!

Docker for Windows

WindowsマシンへのDocker導入でいくつか躓いたので、筆をとりました。
はじめはWindowsなので、Docker Toolboxを利用すればいいかなと思っていたのですが、
Docker公式サイトのドキュメントに以下のように記載されていました。
https://docs.docker.com/toolbox/toolbox_install_windows/

Legacy desktop solution. Docker Toolbox is for older Mac and Windows systems that do not meet the requirements of Docker for Mac and Docker for Windows. We recommend updating to the newer applications, if possible.

私はWindows10を利用しているのでDocker for Windowsを導入してみました。
Docker ToolboxではVirtual Boxを立ち上げてそのうえでDockerを動作させますが、Docker for WindowsではHyper-Vを利用してDockerを操作できるようです。

なお、Docker for WindowsはOSに制限があります。
Hyper-Vが利用できないOSバージョンは対象外ということですね。

The current version of Docker for Windows runs on 64bit Windows 10 Pro, Enterprise and Education (1511 November update, Build 10586 or later). In the future we will support more versions of Windows 10.

上記以外のWindowsマシンを利用している方は、従来通りDocker Toolboxを使いましょう。

Hyper-Vが有効になっていると、VirtualBoxが起動できないのでDocker ToolboxとDocker for Windows同時利用はできないようです。

Docker for Windowsのインストールは非常に簡単で、msiファイルを起動するだけです。
Hyper-Vが無効になっている場合は、勝手に設定をしてくれます。

Docker Toolboxからの移行

Docker Toolboxで利用していたdefault machineについては、インストール後に引き継ぐことができます。
設定画面 > Reset > Reset to Toolbox default machine content

PowerShellでタブ補完

ここを参考に、PowerShellにタブ補完モジュールを導入しました。

Firewallでエラー

ローカルドライブをDockerと共有するために、設定画面からからShared Driversを変更したのですが、エラーになりました。

私の場合、セキュリティソフトが悪さをしていました。

Proxyでエラー

インストールしたのち、pullをしたもののエラーになりました。

PS C:\WINDOWS\system32> docker pull dorowu/ubuntu-desktop-lxde-vnc
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connectio
n (Client.Timeout exceeded while awaiting headers)

利用環境がProxy配下のため、うまくネットワークに接続できていないようです。
Docker Toolboxでは、ややProxyの回避は面倒でしたが、Docker for WindowsではGUIを使って簡単に設定できます。
https://docs.docker.com/docker-for-windows/#proxiesを参考

Kitematicでエラー

CLIで操作する分には特に問題はないのですが、起動しているコンテナはGUIで管理したいので、Kitematicを導入します。
Docker For WindowsでKitematicを利用する場合は、まず設定ポップアップからKitematicを選択します。
ポップアップが表示されますのでリンクからソースをダウンロードしてきます。

ポップアップにある様に、指定の場所(C:\Program Files\Docker\Kitematic)に落としたKitematicを配置します。

これで、Kitematicは起動できるようになりますが、KitematicがProxyに阻まれてしまい、Kitematicがネットワークにつながりません…

構成としてはいまいちな感じはしますが、こちらの記事を参考にし、Kitematic起動用のバッチを準備しました。

SET HTTP_PROXY=http://000.000.000.000:0000
SET HTTPS_PROXY=http://000.000.000.000:0000
Kitematic.exe

Kitematic.exeと同じフォルダにproxy.cmdのように名前を付けておいています。

まとめ

Windowsで手軽にDockerが利用できるようになりました。
今後、気づいたこと、躓いたことがあれば随時執筆していきます。