A5:SQL Mk-2

開発のこと、日々のこと

Hyper-VでなくVMwareでDocker for Windows を使う

| 0件のコメント

長らく Docker を試してみたかったのだけど、仮想マシンでDockerを試すのもなんだかという気がしていたし、Docker for WindowsはHyper-Vを使うけどウチの環境はVMware WorkstationでVMがたくさんあったりするので試せないなあと思っていました。

A5:SQL Mk-2のテスト用データベースをVMware上のLinux (Cent OS 7)に移行したのを機に仮想マシンでDockerを導入したのでいろいろ調べてみると、なんだかDocker for WindowsとVMware上のLinuxの組み合わせができそうな気がしてきたので、試してみました。

通常Linux上ではdockerコマンドからソケットまたはTCPプロトコルでdockerdデーモンと通信を行い、コンテナを操作します。

Docker for Windowsでは、docker.exe(Windowsの実行ファイル)からHyper-V上で動作するMobyLinuxVMという名前の仮想マシン上のdockerdデーモンと通信を行い、コンテナを操作します。

ならば、Hyper-Vなしで、Docker for Windows のdocker.exeとVMware上のLinuxのdockerdデーモンと通信させれば行けるはず。

 

以下手順です。

■VMware Workstation上にCent OS 7を導入

説明は省略します。

 

■Cent OS 7 上にdockerを導入

そういうブログ記事とかは多いと思うのでさらっと。

 

■Windows端末から名前解決できるようにする

Windows端末から名前解決できるようにするためsamba(のnmb)を導入する。

 

■Docker for Windowsからのアクセス

普通にDocker for Windows をダウンロードしてインストール
https://docs.docker.com/docker-for-windows/install/
Get Docker for Windows [Stable] からダウンロードしてインストールした。
以下のコマンドを実行して、自分のユーザーがdocker-usersグループに含まれているか確認する。

自分のユーザーがdocker-usersグループに含まれていない場合、以下で追加

再起動すると Hyper-Vが稼働していないとか言ってくるが無視する。

(OK/キャンセルだが、OKしてはいけない…と思う)

Ctrl+Shift+Escでタスクマネージャーを起動し、「スタートアップ」タブを選択
Docker for Windows が有効になっているので無効にする。

コルタナまたはWin+Rから「Control」でコントロールパネルを起動
コントロールパネル > システムとセキュリティ > システム …を選択
左ペインの「システムの詳細設定」
[環境変数(N)…]ボタン
ユーザーの環境変数・システムの環境変数のどちらでも追加
変数名(N): DOCKER_HOST
変数値(V): tcp://VMCentOS:2375

 

これで、コマンドプロンプトを起動すれば、dockerコマンドが使えるようになっているはず。

 

Docker for Windows のサービスも止める (2018/01/08追記)

管理者モードでコマンドプロンプトを開き、scコマンドを使って「Docker for Windows Service」 を「手動」に変更する

 

看過できない疑問

これ、セキュリティ(Dockerのアカウント)ってどうなってるんだろう?dockerdの-Hオプションで接続元IPをある程度制限できそうだけど…分かったら追記します。

コメントを残す

必須欄は * がついています