0
0

Windows11上にDocker EngineをインストールしてWindowsコンテナを実行してみる

Posted at

Windows11(WSL2)上のUbuntuにDocker EngineをインストールしてLinuxコンテナを実行してみる

前回、Windows11(WSL2)上にDocker EngineをインストールしてLinuxコンテナを実行してみましたが、本記事ではWindows11上にDoker EngineをインストールしてWindowsコンテナ実行についてまとめます。

Docker Desktop有償化について

Windows上でWindowsコンテナを実行する方法については、下記の2パータンかと思いますが、Doker Desktopが無償利用に制限があるため今回は②パターンを選択。

① WindowsにDocker Desktopをインストールして利用する
② Windows上にDocker Engineをインストール

ドキュメント

Install server and client binaries on Windows

作業の開始:コンテナー用の Windows を準備する

バイナリのダウンロード

Index of win/static/stable/x86_64/

バイナリダウンロードサイトから最新版のバイナリをダウンロードします。
今回利用するのは、docker-27.0.3.zipとなります。

バイナリのインストールとサービス登録

ドキュメントを参照するとPowerShellでzipファイルの展開とインストールを進めるようです。

下記はダウンロードしたzipファイルをc:\qiita\docker\docker-27.0.3.zipに配置してインストールした例。

なおドキュメントにある手順ではprogram files直下にファイルを展開しているため、PowerShellは管理者で実行してください。

# Program Filesにアーカイブを展開
Expand-Archive "C:\qiita\docker\docker-27.0.3.zip" -DestinationPath $Env:ProgramFiles

# サービス登録
&$Env:ProgramFiles\Docker\dockerd --register-service

# サービス起動
Start-Service docker

# サービス確認
Get-Service docker

コマンド実行後、dockerサービスが起動している事を確認できました。

image.png

なお下記のようなサービスが登録されました。

image.png

Windows機能からHyper-Vとコンテナ機能を有効化

ドキュメントに従い、dockerサービスをインストール後、dockerのhelloworldを実行した所、下記のようなエラーが発生しました。

docker: Error response from daemon: hcs::CreateComputeSystem f74c737d4e2360dc2332da72036c801d1a4d28ed4f9a928f54c78fdd6d9edbe1: The request is not supported.

image.png

調べてみると、Windows機能でHyper-Vとコンテナが無効化されていない場合や、BIOSで仮想化機能が無効化されている事が原因のようです。

確認してみると、実行端末ではどちらもDisabledとなっていました。

image.png

# Hyper-Vが有効化されているか確認(管理者実行)
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V

# コンテナが有効化されているか確認(管理者実行)
Get-WindowsOptionalFeature -Online -FeatureName containers

上記コマンドで確認を行い、機能がDisabledの場合は下記コマンドを実行して、Hyper-Vとコンテナ機能を有効化します。

なお有効化には管理者実行が必須となり、有効化時に再起動を求められます。

# Hyper-Vを有効化(管理者実行)
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V All

# コンテナを有効化(管理者実行)
Enable-WindowsOptionalFeature -Online -FeatureName containers All

image.png

helloworldイメージを実行

&$Env:ProgramFiles\Docker\docker run hello-world:nanoserver

上記コマンドにてnanoserverでhelloworldを実行しています。
初回実行時はダウンロードが発生するのでしばらく待ちます。

image.png

実行されました。

Linuxコンテナの時と同様に、どのような仕組みでterminalにhelloworldが表示されているかについて記載があります。

公式ではDocker Desktopのインストールが推奨されている

Install Docker Engine from binaries

バイナリインストールでは自動更新等がされないなど、公式としては推奨はされていないインストール方法となるようです。
(あくまでDocker Desktopを利用するのが推奨)

総評

Windows上でDocker Desktopを利用しないLinuxコンテナ実行環境構築に続き、Windowsコンテナの実行環境構築についてもまとめてみました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0