概要
Windows 11 で Docker Desktop を動かすまでの手順を、比較的初心者を対象とし、順を追って作業できるようにまとめました。
背景など
こんにちは、Docker Captainをしている @zembutsu です。この記事はさくらインターネットAdvent Calendar 2023の4日目の記事として書きました(気づいたら枠が空いていたので差し込みました)。
まっさらな状態のWindows 11を手に入れ、Docker Desktopを入れ直す機会があり、ついでにセットアップ手順も確認しました。
Docker Desktop for Windows 11 が動くPCとは
ドキュメントのシステム要件1 によると、Windows 11で動かすには:
- Windows 11 64bit: 21H2 以上(Home、Pro、Enterprise、Educationの各エディション)
- メモリ 4GB
- BIOS/UEFI でハードウェア仮想化に対応(hardware virtualization)
とあります。メモリは、そもそも Windows 11 自身が 4GB を動作環境としていますので、普通に Windows 11 が動けば特に気にする必要は無いでしょう。ハードウェア仮想化に対応しているかどうかは使っている CPU に依存します。もし BIOS/UEFI で無効になっていれば、有効化が必要です。
動作要件を満たしていれば、Docker Desktop のダウンロードとインストールに進みます。
以前のDocker Desktopは、事前にWSL2やカーネルファイル等のセットアップや設定が必要でした。WSL2とは、Windows Subsystem for LinuxはWindows上でLinuxを動かすための仕組みです。現在は、WSL2が入っていなくても、Docker Desktopのインストール中に自動でセットアップされます。
(詳しい方向けの補足情報:デフォルトではUbuntuがセットアップされます。他のLinuxディストリビューションを使いたい場合は、この段階で手動でもセットアップ可能です。また、自分でディストリビューションを決めた場合、Docker Desktop側でのWSL自動更新機能は無効にするかどうかの検討も必要です。)
Docker Desktop for Windows のダウンロードとインストール
ダウンロード
インストールをするには、Docker Desktopをインストールするプログラム(インストーラー)が必要です。Docker のウェブサイト https://www.docker.com/get-started/ からファイルをダウンロードできます。ページを開くと、次のような画像が開きますので【 Download for Windows 】(Windows用をダウンロード)をクリックします。
ブラウザでダウンロード始まり、終われば「ダウンロード」フォルダにファイルが入っています。エクスプローラーを起動して、「ダウンロード」を開くと、次のように【 Docker Desktop Installer 】のアイコンが見えますので、これをクリックします。
インストール
プログラムを起動すると、Windows の警告画面「ユーアーアカウント制御 このアプリがデバイスに変更を加えることを許可しますか?」という画面が出ます。「信頼済みの発行元:」が【 Docker Inc 】と表示されているのを確認した上で【 はい 】を選びます。インストール途中、もう一度この画面が出たら、同じように【 はい 】を押します。
しばらくすると、次のように設定画面が出ます。以下2つの項目にチェックが入っています。
- 「Use WSL 2 instead of Hyper-V (recommended)」(Hyper-Vの代わりにWSL 2 を使う:推奨)
- 「Add shortcut to desktop」(デスクトップにショートカットを追加)
すでに Hyper-V を使っている場合は、クリックしてチェックを外します。まっさらな状態からのインストールであり、特に理由も無ければ、そのまま WSL 2 を使う設定で大丈夫です。また、デスクトップのショートカットが不要であれば、外しておきます。
確認したら【 OK 】をクリックします。
あとは、自動的にインストールが進行します。WSL が入っていない場合は、画面の後ろ側でインストール作業をしています。時間が多少かかるかもしれませんが、完了するまで画面をそのままにして待ちます。
インストールに成功すると、「Installation succeeded」(インストール成功)を表示されますので、【 Close and restart 】(閉じて再起動)をクリックして、PCを再起動します。もし何か作業中で保存していないものがあれば、再起動前に保存するのをお忘れなく。
PC再起動後のセットアップ
再起動が終わると、自動的に Docker Desktop が起動します。そして「Docker Subscription Service Agreement」が表示されます。これはサブスクリプションの使用許諾で、概要は次の通りです。
- Docker Desktop は、 中小企業 (従業員 250 人未満、かつ、年間売上高が 1,000 万米ドル未満)、個人利用、教育、非商用オープンソースプロジェクトは無料です。
- それ以外の場合は、サブスクリプションの支払が必要です。
- 行政機関もサブスクリプションの支払が必要です。
- Docker Pro、 Team、Business サブスクリプションには、 Docker Desktop の商業的利用を含みます。
内容を確認して【 Accept 】(受け入れる)をクリックします。
次に、インストールの最後で WSL 2 の自動更新をするか手動更新を行うか画面に表示されます。ここでは、特に理由がなければ、そのまま【 Finish 】をクリックします。
Docker Desktop を操作する前に
作業はあと少しです!
次は「Welcome to Docker Desktop」(Docker Desktop へようこそ)と表示されます。Docker Hub の ID を持っている場合は「Sign up」をクリックしてログインできます。ID を持っていない場合は【 Continue without signing in 】(サインインせずに継続)をクリックします。
そして、最後にアンケートが表示されます。「Tell us about the work you do」(どんなお仕事をしているか教えてください)と出ていますので、「What's your role?」(どんな役割?)のメニューから、必ず何かしらを選択します。そして【 Continue 】をクリックします。
これでセットアップは完了です! Docker Engine(Dockerコンテナやイメージを操作するプログラム)が起動中の表示に変わります。
次の画面に切り替われば、Docker Desktop を操作できます。
hello-world コンテナの実行
実際にコンテナが動くかどうか見てみましょう。虫眼鏡マークの検索ボックスで hello-world
と入力すると、バッジのような公式マークが付いたイメージが見えます。これが Docker 公式イメージ(Official image)と呼ばれるものです。この列の右端の【 Run 】をクリックすると、コンテナを実行できます。
次の画面では詳細オプションを設定できます。ここでは、そのまま【 Run 】(実行)をクリックします。
あとは、自動的に hello-world
Docker イメージをダウンロードし、このイメージを使う Docker コンテナを実行します。このコンテナは文字を出すだけですので、次のようにログの画面で実行結果を確認できます。
nginx コンテナの実行と、ファイアウォール設定の許可
もう1つコンテナを動かしてみましょう。Nginx の Docker イメージを使い、コンテナとして動かし、さらにブラウザで開きます。
先ほどと同様に、検索ボックスに nginx
を入れます。検索したら、公式 Nginx イメージを見つけ【 Run 】をクリックします。
先ほどの手順とは異なり、【 Optional settings 】(オプション設定)をクリックします。そして出てくる項目のうち「Host port」に【 80 】を入れ、【 Run 】をクリックします。(すでにPC上でポート 80 を使用するプログラムを実行していると使えませんので、8080 など別の番号にします)
すると、次は「パブリック ネットワークとプライベート ネットワークにこのアプリへのアクセスをきょかしますか?」と表示が出ます。次の画面のように発行元が「Docker Inc.」と出ているのを確認し、【 許可 】をクリックします。
Nginx Dockerイメージをダウンロードした後、コンテナが起動します。次の画像のように、【 80:80 】と書かれているリンクをクリックします。この意味は、ホスト側、つまりPC側のポート 80 をコンテナ内のポート 80 に接続(マッピング)する意味があります。
リンク先をブラウザで開くと、次のように Nginx の初期画面が表示されます。
使用が終わったコンテナは「Actions」列にあるボタンをくりくし、停止・削除できます。
セットアップが終わったら?
「ハンズオンガイド」や「始め方」の公式ドキュメントの日本語訳がありますので、そちらを読み進めて慣れてみてはいかがでしょう。
Enjoy!
補足:「WSLでUbuntuを使いたいのですが?」
今回の手順インストールする WSL では、 docker-desktop
と docker-deskto-data
という名前の、 Docker Desktop を動かすことに特化した2 Linux ディストリビューションが自動的にセットアップされます。
> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
docker-desktop (既定)
docker-desktop-data
このように、何らかの Linux ディストリビューションが入っているかのように見えますが、実際の開発用とでは使えないでしょう。たとえば、 apt
や dnf
といったお馴染みのコマンドは使えません。
それでは、どのようにして Ubuntu を WSL で使えば良いのでしょうか。手順は2つあります。
Windows ストアで Ubuntu を探す
1つは、Windows ストアで Ubuntu を探します。アプリ「Windows Store」を起動し、検索画面で「Ubuntu」と入力します。【 入手 】をクリックするとダウンロードが始まります。
ダウンロードが終わったら、【 開く 】のボタンを押します。
ボタンを押すと、Ubuntu を初めて動かすための設定(初期化)が行われます。次のような画面が出てきたら「Enter new UNIX username:」(新しいUNIXユーザ名の入力)で、好きなユーザ名をに入力します(英語・数字・一部の記号)。これが、通常 Ubuntu 内で操作を行う(権限を持つ)ユーザ名になります。
その次の「New password:」と「Retype new password:」では、そのユーザ用のパスワードを設定します( sudo
コマンドを使うときにも、このパスワードを入力します)。ここではキーボードを操作しても画面には文字が出ません。入力後に「エンターキー」を押します。確認用のパスワードと含めて、同じ文字列を二度入力します。
入力が正しければ、「この操作を正しく終了しました。」と出て、もう少し待てば Ubuntu が使えるようになります。
以上で Ubuntu のセットアップは完了です。
しかし、これだけでは Ubuntu 内で docker
コマンドが使えません。普通に使えるようにするには、次の手順に進みます。
WLS のデフォルトディストリビューションを Ubuntu に変更する
これまでの手順を進めてきた場合、デフォルトでは WSL 内では docker-desktop
がデフォルトの WSL 用ディストリビューションです。 wsl -l -v
コマンドを実行すると、次のように入っているディストリビューション一覧が表示されますが docker-desktop
に *
印が付いており、これがデフォルトと分かります。
> wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
docker-desktop-data Running 2
Ubuntu Running 2
これを変更するには、コマンド wsl --set-default ubuntu
と入力します。
> wsl --set-default ubuntu
この操作を正しく終了しました。
それから、再度ディストリビューション一覧を表示すると、今度は ubuntu
に *
マークが付いていて、設定の切り替わりを確認できます。
> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)
docker-desktop-data
docker-desktop
あとは、Windows メニューから wsl
を起動すると、ubuntu
にログインした状態の画面が開き、かつ、 docker
コマンドも使えるようになります。
Enjoy!
関連情報
- Using Dev Containers in WSL 2