自分だけのクイズを作成しよう - Quipha
スポンサーリンク

【Docker Desktop】Windowsにインストール(WSL2)

Docker

当サイトではアフィリエイト広告を利用しています。

スポンサーリンク

Dockerを使おう

みなさんDockerを使っていますか?
環境をさくっと用意できるのは便利ですよね!

今回はWindowsにDockerをインストールする手順を解説します。
ついでにPython環境のコンテナを起動してみたいと思います。

2023/04/03 最新のDocker DesktopとWSL2で試しました。

他にも私のブログで、Dockerについて解説している記事がありますのでご覧ください。

使用するバージョン
  • Windows 11 / 10
  • Docker Desktop 4.17.1

MacにDockerをインストールする手順は、以下の記事をご覧ください。

Docker Desktopの有料化

2021年9月、Docker Desktopは、条件を満たした利用について有料になりました。
個人はこれまで通り無料で利用できますが、企業での利用は注意ですね。

(翻訳) Docker Desktop は、Docker Personal サブスクリプションの一部として、個人、非営利のオープン ソース開発者、学生および教育者、および従業員が 250 人未満で収益が 1,000 万ドル未満の中小企業向けに無料で使用できます。

https://www.docker.com/pricing/
Pricing
Docker licensing is always free for personal use. But what if your team or business wants to use Docker? Compare our pri...

WSL2のインストール

Docker Desktopをインストールする前に、WindowsにWSL2をインストールしましょう。
以下の記事にまとめていますので、ご覧ください。

ダウンロード

Windows用のDockerデスクトップをインストールします。

以前は、Windows 10 Pro または Enterprise の64-bitが必要でしたが、WSL2をインストールすればWindows 10 Homeでも利用ができるようになりました。
本記事では、WSL2を使った構築を行います。

今回はWindows 11 Proを使用しておりますが、他のEditionでも同じだと思います。

以下のページより、Docker Desktop for Windowsをダウンロードします。

Install Docker Desktop on Windows

「Docker Desktop for Windows」をクリックし、インストーラをダウンロードします。

以前はダウンロードの際に、Dockerアカウントが必要でしたが、今は必要ありません。

インストール

ダウンロードしたインストーラを起動します。

ちなみに以前のインストーラはこんな感じでした。
可愛いクジラちゃん、Moby Dockって名前らしいですよっ

今回はWSL2で起動します。

2つのチェックボックスがありますが、「Use WSL 2 instead of Hyper-V (recommended)」のチェックを入れ、次へ進みます。

インストールが開始されます。

インストールが完了しました。
「Close and restart」ボタンをクリックし、再起動します。

再起動後、Dockerを起動すると規約画面が表示されます。
確認し、問題なければ「Accept」ボタンをクリックします。

もし、WSL2または、Hyper-Vが有効になっていない場合、エラーになります。
事前にWSL2のインストールを行いましょう。

An error occurred

Required Windows feature(s) not enabled: Hyper-V.
Switch to WSL 2 based engine?

To enable Hyper-V: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

Docker Desktop起動

Dockerが正常に起動すると以下のようなアンケート画面が表示されました。
ここではSkipします。


必要に応じてチュートリアルを見ましょう。

ちなみにチュートリアルはこのような感じで、Clone、Build、Run、Shareなど、Dockerの基本的な流れを実行することができます。

PowerShellを起動し、「docker ps」と打ちます。
以下のような表示になれば、まずは正常に動作しています。

PS C:\Users\xxx> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
スポンサーリンク

設定

Dockerの設定を開きます。
「Start Docker Desktop when you log in」のチェックを外しました。
PC起動時に、Dockerは起動しないようにしました。

リソースの設定はWSL2では設定できませんでした。

Resources
Advanced
You are using the WSL 2 backend, so resource limits are managed by Windows.

You can configure limits on the memory, CPU, and swap size allocated to WSL 2 in a .wslconfig file.

Dockerイメージのダウンロードと起動

これでDockerの準備ができました。
コンテナが一つもありませんので、試しに表示されているコンテナを起動してみましょう。

以下のコマンドをPowerShellから実行します。

docker run -d -p 80:80 docker/getting-started

ブラウザを起動して、以下のURLを開きます。

http://localhost/

Getting Started画面が表示されました。
これはコンテナ上のサーバーのページにアクセスしていることになります。

Docker Desktopを見てみましょう。作成したコンテナが一覧に表示されます。

コンテナ名は、「recursing_herschel」になっていますが、ランダムに作成される名前です。

次に、Pythonイメージをダウンロードしてみましょう。
PowerShellから以下のようにコマンドを実行します。(Python3.6環境)

docker pull python:3.6

「docker images」でイメージがダウンロードされたか確認します。

PS C:\Users\xxx> docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
python              3.6                 2bb3204ab1d1        8 days ago          924MB

コンテナを起動します。
「pytest」は名前ですので任意で指定してください。

docker run -it --name pytest python:3.6 /bin/bash

rootでログインしているような状態になります。

このコンテナには何も入っていないので、とりあえずエディタを入れました。

# apt-get update
# apt-get install -y vim

「vi test.py」とコマンドを打ち、test.pyファイルを作成します。
中身はprintで文字を出すようにしました。

print("test")

「python test.py」と入力し、Pythonが実行されることを確認します。

たったこれだけでPython環境が作れました

フォルダの共有

コンテナ側とWindows側で、フォルダを共有できます。
それによりソースコードやログファイルなどの共有ができ便利です。

Dockerのコンテナは、基本的に使い捨てですので、永続化したいデータなどは、このように外部へ保存するようにします。

今度はDockerコマンドで、「-v ホストパス:コンテナ内パス」を追加します。
それぞれのパスは任意で結構です。(別コンテナを作成します)

docker run -it -v D:\Docker\share:/root/share --name pytest2 python:3.6 /bin/bash

ここではDドライブを例にしていますが、共有場所はWSLを指定しましょう。
Cドライブなどを指定した場合、ファイルシステムの関係で読み込みが遅くなります。

もしフォルダを共有してよいか警告が表示された場合は、「Share it」をクリックします。

Docker Desktop – Filesharing

Docker wants to access to D:xxx.
Do you want to share it?

Windows側では共有したフォルダに、適当なファイルを作成します。

コンテナ側で、ファイルが作成されていることを確認します。
(Windows側で作成したPythonファイルをコンテナで実行した例)

Docker Desktopで確認

私は基本的にDockerコマンドで操作していますが、Docker Desktop上でもコンテナを操作できます。

コンテナ一覧

コンテナの一覧が表示され、稼働状況やCLIを開いたり、停止、再起動、削除などを行うことができます。

イメージ一覧

Dockerイメージの一覧が表示されます。

さいごに

このようにDockerは簡単に環境を用意でき、とても便利です。
ぜひ活用しましょう。

他にも私のブログで、Dockerについて解説している記事がありますのでご覧ください。

\オススメ/

コメント