以前にWindowsServer2016にDockerをインストールして稼働させようと思っていたのですが、WindowsServer2016ではLinuxコンテナが起動しないということがわかり断念しました。
なので今回は最近購入した自作PC(Windows10 Pro)にDocker for Windowsをインストールしてみたいと思います。
試した環境
以下のPC環境で試しています。いわゆるSandy Bridgeおじさんです。
- Windows10 Pro バージョン1909
- CPU:Intel Core i7-2600K
- メモリ:24GB


インストール作業
Hyper-Vを利用するためにはプロセッサの仮想化支援機能である「Intel VT」を有効にする必要があります。(メモリも最低4G は必要です)
「Intel VT」の機能はBIOSで無効にされている可能性がありますので、その場合にはBIOSで有効にしてください。


タスクマネージャからCPUを確認して「仮想化:有効」になっていればOKです。

Hyper-Vのインストール
Docker for Windowsの利用にはHyper-Vが必要なのでインストールします。
面倒なので今回はコマンドでインストールします。管理者権限としてPowershellを開いたら以下のコマンドでHyper-Vをインストールします。
> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
インストールが完了すると再起動が求められるので再起動します。

Docker for Windowsのインストール
次にDocker for WindowsのインストーラをDockerのサイトからダウンロードします。
Dockerにはコミュニティ版(CE; Community Edition) と エンタープライズ版(EE; Enterprise Edition) の2つのエディションがあります。
Windows10 Proの場合にはDockerCEが利用できます。(ちなみにWindowsServerの場合にはDocker EEを利用します)


Docker CE には stable と edge の2つの更新用チャンネルがあります。
- stable(安定版) は3ヶ月ごとに安定した更新を行います
- edge(エッジ) は毎月新機能を追加します
Stableが安定版になりますのでこちらをダウンロードします。

ダウンロードしたインストーラをクリックしてインストールを開始します。デフォルトのままでインストールして問題あります。


PCの再起動を求めれるので再起動します。
Docker for Windowsの起動確認
OSが立ち上がった後、Dockerの起動のメッセージが表示されます。
最初のメッセージでHyper-VのLinuxマシンが開始していると表示されてからDockerの起動が完了したメッセージが表示されます。


問題なくDockerが起動すると右下にDockerのアイコンが表示されます。もし、このアイコンが赤くなって怒っていると、正しく起動していません。

初回だけこんな感じのチュートリアルの誘導画面が表示されます。これまでDockerを触ったことがない方は受けることをお勧めします(Gitが必要になりますので事前にインストールしておいてください)

正しくDockerが起動していることを確認するためにPowerShellを立ち上げて「docker version」コマンドを打ち込みます。バージョンなどが表示されれば正しくインストールされています。

試しにDockerでコンテナを作ってみる
実際に何かコンテナを作成してみます。
今回は私が以前にDocker for Macで試したnetboxというIP管理システムのコンテナを作ってみます。
Gitを利用するので事前にGitをインストールしておいて下さい。
準備が整ったら、まずDockerを配置するフォルダを作ります。私はC:\\直下にDockerというフォルダを作ってます。(基本的にどこでもいいです)

Powershellを立ち上げてDockerフォルダへ移動し、git cloneコマンドでnetboxのコンテナを作成するためのdocker-composeなどを取得します。またそのフォルダへ移動します。
PS C:\Users\user> cd C:\Docker
PS C:\Docker> git clone https://github.com/netbox-community/netbox-docker.git
PS C:\Docker> cd .\netbox-docker\
そうするとnetbox-dockerというフォルダができているかと思います。その中のdocker-compose.ymlを修正します。

ファイルの中にある8080を8080:8080に変更します。
ports:
- 8080
↓ portの部分だけ変更します
ports:
- 8080:8080
docker-compose.ymlファイルが修正できたらコンテナを取得して起動します。netbox-dockerフォルダの中で「docker-compse up -d 」コマンドを実行します。
PS C:\Docker\netbox-docker> docker-compose up -d
コンテナ構築途中で以下のようなセキュリティ関連の注意されるダイヤログが表示されたら[Share it]で許可してください。ファイアーウォールの警告もでたら同様に許可して下さい。
※Macでは出たことないのでWindowsだけだと思います(それかPowerShellを管理者で起動すればでないかも!?)


実際にコンテナが作成されていることを「docker-compose ps」コマンドで確認します。

最後にコンテナにアクセスしてみます。
ブラウザからlocalhostの8080ポートにアクセスしてみてください。netboxのページが表示されればOKとなります。Log in して実際の動きでも確認してみてください。


Dockerのオススメ勉強方法
私がオススメするDocker初心者向けの最初に購入すべき書籍は「さわって学ぶクラウドインフラ docker基礎からのコンテナ構築」です。
さわって学ぶクラウドインフラ docker基礎からのコンテナ構築

本書ではDockerの基本的な概念などの座学ももちろんありますが、実際に、Dockerのインストール方法やWebサーバーをコンテナで構築するハンズオンを通じて学習することができるため、特に初心者の方はは分かりやすい内容となっています。
今回は以上となります。
コメント