Windows 10+WSL2環境にDocker Desktopをインストール

コンピューターDocker,Linux,Windows,WSL

先日、Windows 10にWSL2(Windows Subsystem for Linux)をインストールしましたが、Windows向けのDockerもWSL2に合わせてアップデートされましたので、インストールしてみました。

従来のWindows向けDockerに比べて、WSL2で動くDocker Desktopは、Linuxがネイティブに動くため起動が速くパフォーマンスが高い、動的メモリにメモリを確保するためリソースを有効活用できる、Docker自体の起動が速いなどの利点があるそうです。

システムの要件

Docker Desktopをインストールする前に、WSL2をインストールする必要があります。

WSL2のインストールに関しては、先日まとめましたので、こちらをご覧ください。

Dockerは、デフォルトで起動するように設定されているLinuxディストリビューション上で動きます。ですので、上記ページの最後の項wsl --set-default Ubuntu-20.04も行っておいてください。(ディストリビューション名Ubuntu-20.04は、ご使用の環境に合わせて変えてください)

Docker Desktopのインストール

Docker Desktopをインストールすると、チュートリアルが始まります。チュートリアルは、Gitのインストールと、Docker Hubのアカウントが必要になります。チュートリアルも行いたい場合は、こちらを先に準備してください。Docker Hubのアカウントがあると、自分のDockerコンテナをDocker Hubで公開できます。

Gitのダウンロードページ:

Docker Hub:

続いて、Docker Desktopのインストールを行います。こちらのサイトから、Docker Desktopのインストーラーをダウンロードします。

Docker Desktopのインストーラーを起動してしばらく待つと、インストールの設定画面になります。このとき、「Enable WSL 2 Windows Features」にチェックを入れて進めてください。

インストールが終わったら、指示に従ってログアウトし、再度ログインします。

チュートリアルをしてみる

ログインすると、自動的にDocker Desktopが起動して、チュートリアルが始まります。(チュートリアルが必要ない人は、「Skip tutorial」を押して閉じればインストール完了です)

繰り返しますが、このチュートリアルはGitとDocker Hubのアカウントが必要です。

「Start」を押すと、次のような画面になります。左側にチュートリアルがあって、右にPowerShellの画面があります。案内に従ってコマンドを実行しますが、コマンドの入力は中央のボタンを押すか、右のPowerShell画面に直接入力します。

すると、GitHubからチュートリアル用のファイルがダウンロードされます。(何もいじらずボタンを押した場合、C:\Users\ユーザー名\getting-startedにリポジトリーがクローンされます)

「Next Step」を押すと、次はイメージのビルドを行います。先ほどクローンしたフォルダに入り、Dockerイメージのビルドを行います。-tオプションは、コンテナイメージの名称を決めるオプションです。

ビルドが終わったら、Dockerコンテナを起動します。
-dオプションは、起動後にデタッチするオプションです(コンテナのシェルに入らず、Windows側のプロンプトに戻ってきます)。
-pオプションでは、Windows側の80番ポートをコンテナの80番ポートにマッピングするよう指定しています。
--nameオプションでは、起動するコンテナに与える名称を設定しています。
最後の引数は、起動するコンテナの名称を指定します。

起動すると、Windowsファイアウォールからの警告が出てくる場合があります。「プライベートネットワークに接続しているとき、LAN内デバイスからDockerコンテナへの接続許可したい」という場合は、下図のようにチェックを入れてアクセスを許可します。

最後に、今回作成したDockerコンテナをDocker Hubにアップロードします。「Sign in here」を押してDocker Hubにログインします。そして、Dockerコンテナにタグをつけて、docker pushでDocker Hubにアップロードします。

Doneを押すと、次のような画面になります。この画面は、ダッシュボードの説明です。Docker Desktopのダッシュボードは、タスクバーのDockerアイコンを右クリックして「Dashboard」から開けます。ダッシュボードで「OPEN IN BROWSER」ボタンを押すと、Docker中のnginxが開設しているチュートリアルページ( http://localhost/tutorial/ )が開きます。このチュートリアルページも読んだ方が良さそうですが、私はまだ読めていません。

以上でDockerのチュートリアルは終了です。まだDockerの概念がよく分からないのでコマンドも理解できていないのですが、とりあえずDockerコンテナが動くようになりました。

ネットで検索すると、dockerコマンドの使い方がいろいろ出てきますが、この「WSL2で動くDocker」を使ってコンテナを起動したりする場合は、(WSL2上のUbuntuに入るのではなく)Windows側のコマンドプロンプトやPowerShellからDockerコマンドを打てば良さそうです。もしくは、似たようなことがDocker Desktopのダッシュボード画面からもできそうです。


この記事は、こちらのページを参考にさせていただきました。