近年、エンジニアの必須技術となりつつある仮想化。
その一つのコンテナについて、Windows10でWindowsコンテナを使ってみようと思います。
AzureやAWSなどを使えばすぐ用意できますが、今回はWindows10にDockerをインストールして、ローカル環境でWindowsコンテナを使うまでの手順をまとめました。
目次
Windows10でWindowsコンテナを使う方法【Docker Desktopインストール】
Windows10でWindowsコンテナを使うために、Dockerをインストールします。
Dockerとは、Docker社が開発しているコンテナ型の仮想環境を管理するためのプラットフォームです。
仮想環境についはコンテナ以外にもVirtualBoxなどの仮想化マシンがありますが、仮想マシンとコンテナの違いについては”さくらのナレッジ”様のサイトが参考になりました。
VirtualBoxなどの仮想マシンでは、ホストマシン上でハイパーバイザを利用しゲストOSを動かし、その上でミドルウェアなどを動かします。
それに対し、コンテナはホストマシンのカーネルを利用し、プロセスやユーザなどを隔離することで、あたかも別のマシンが動いているかのように動かすことができます。
そのため、軽量で高速に起動、停止などが可能です。
引用元:https://knowledge.sakura.ad.jp/13265/
Windows 10にDocker Desktopをインストール
Windows10用のDockerは「Docker Desktop」を使用します。
Docker Desktopは以下のリンクからダウンロードできます。
https://www.docker.com/products/docker-desktop
Stable(安定)版とEdge(最新)版が選べますが、Windows10 Homeをお使いの方はEdge版しか動作しないので、Edge版をダウンロードしてください。
Windows10 ProやEnterpriseをお使いの方は、どちらでも構いません。
私は安定派なので、Stable版をインストールしました。
実行ファイルをダウンロードできたら、インストールします。(以下はStable版です)
特に変更すべき点はありませんので、そのまま進めていきます。
インストールが完了したら、再起動を促されますので再起動すればインストールは完了です。
Docker Desktopを起動する
再起動後、Docker Desktopを起動するかどうかのダイアログが表示されますので、Startを選択します。
しばらくすると起動しますが、起動するまでの間にチュートリアルを見ることができます。(スキップしても構いません)
この画面が出れば起動完了です。これでDockerが使えるようになりました。
※この画面は初回のみ自動で出ますが、次回以降のPC起動後は自動で出てきません。
念のため、本当にDockerが動作しているか確認します。
Dockerの操作は、基本的にはコマンドプロンプトで行います。
コマンドプロンプトを起動して以下を入力しましょう。
docker -v
この通り、バージョンが表示されればOKです。Dockerは正常に動作しています。
Docker DesktopでWindowsコンテナを起動してみる
Dockerの利用準備が完了したら、さっそくコンテナを起動してみましょう。
Docker Desktopは、初期状態だとLinuxコンテナを扱う設定になっています。
なので、Windowsコンテナを扱うモードに変更してあげる必要があります。
その前に、いったんLinuxコンテナでコンテナの練習をしてみましょう。
お手本のチュートリアル通りに、”hello-world”コンテナを起動してみます。
“hello-world”コンテナは、起動すると画面に”Hello from Docker!”と表示されるだけの機能のコンテナです。
コマンドプロンプトを起動して、
docker run hello-world
を入力しましょう。すると、
“hello-world”コンテナの最新版(latest)が「Docker hub」からダウンロード(Pull)されます。
Docker hubとは、ユーザーや企業が作成したコンテナをアップロードして公開・共有できるサービスです。誰でも自由に使えます。
自分が公開するには、Dockerアカウントの作成が必要です。ダウンロード(Pull)だけならアカウントは不要です。
“hello-world”コンテナのダウンロード(Pull)が完了すると、コンテナが起動して”Hello from Docker!”が表示されました。
これでLinuxコンテナがWindows上で実行できることが分かりましたね。
ちなみに、実行中のコンテナ一覧は以下のコマンドで確認することができます。
docker ps -a
今作成した”hello-world”コンテナが表示されています。
もう使わなくなったコンテナは、PCの容量削減のために削除してしまいましょう。
コンテナの削除は、
docker rm <コンテナID>
で削除します。
消えていますね。こんな感じで、使い終わったコンテナは綺麗に消していきましょう。
それでは、本題のWindowsコンテナを起動してみます。
タスクバーのDockerアイコン(クジラアイコン)を右クリックして、
メニューの中から「Switch to Windows Containers…」を選択して、Windowsコンテナモードに切り替えます。
確認のダイアログが表示されるので、「Switch」を選択します。
しばらくかかるので、待ちます(1~2分ほど)。
切り替えが完了したら、Windows10のコンテナを起動してみましょう。
docker run mcr.microsoft.com/windows:1909
Windowsのコンテナは全部で4種類あります。
- Server Core:標準の製品向け
- Nano Server:ServerCoreより機能を落とした最軽量版
- Windows10:ServerCoreでは動作しない場合の完全版
- IoT Core:IoT製品向け
Windows10のコンテナはEnterprise版です。完全版なだけあって、ダウンロードも重いです。(15GBくらいあります)
ちなみに、最後の数字1909はタグ名で、バージョンです。
何も付けない場合は最新版(latestタグ)がダウンロードされますが、古いバージョンをダウンロードしたい場合はタグで指定します。
Windows10は1909が安定版なので、1909を指定してダウンロードしています。
ダウンロードが終わり、コンテナが起動したら、アタッチしてコンテナを操作してみましょう。
docker attach <コンテナID>
コンテナIDは”docker ps -a”で確認できます。
コンテナにアタッチした画面です。dirコマンドで中を見ると、しっかりWindowsですね。
以上です。
あとは自分のやりたいことをなんでもできますよ!
ちなみに、GUIはどうやっても出せないので、基本はすべてコマンドプロンプト(またはPowershell)で操作することになります。GUIアプリはほぼ使えません。
まとめ
今回はWindows10にDocker Desktopをインストールして、ローカル環境でWindowsコンテナを使うまでの手順をまとめました。
意外と簡単にWindowsコンテナをローカルに実現できたので、Windowsコンテナを使ってテストの自動化とか、なにか便利なことに使えないか考え中です。
みなさんもぜひ使って仮想化技術を体験してみませんか。