自分だけのクイズ作成 - Quipha公開中

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

Docker
スポンサーリンク

Dockerを使おう

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

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

2021/12/04: 最新のDocker DesktopとWSL2で試しました。

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

使用するバージョン
  • Windows 11
  • Docker Desktop 4.3.0

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

スポンサーリンク

Docker Desktopの有料化

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

Docker Desktopは、スモールビジネス(従業員数250名未満かつ年間売上高1000万ドル未満(訳注:1ドル110円換算で11億円))、個人利用、教育機関、非商用のオープンソースプロジェクトであれば、引き続き無料でご利用いただけます。

https://www.publickey1.jp/blog/21/docker_desktop250100011.html
Docker Desktopが有料化へ、ただし250人未満かつ年間売り上げ1000万ドル(約11億円)未満の組織や個人やオープンソースプロジェクトでは引き続き無料で利用可能
Docker社は、これまで無料で提供してきたDocker Desktopの有料化を発表しました。 We're updating and extending our product subscriptions! New subscri...

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をダウンロードします。

Docker Hub

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

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

インストール

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

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

今回はWSL2で起動します。

2つのチェックボックスがありますが、「Install required Windows components for WSL 2」のチェックをして、次へ進みます。(もしHyper-Vの場合はチェックは不要)

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

インストールが完了しました。
「Close and log out」ボタンをクリックし、ログアウトします。

サインイン後、規約画面が表示されます。
確認し、問題なければ「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が正常に起動すると以下の画面が表示されます。
必要に応じてチュートリアルを見ましょう。

ちなみにチュートリアルはこのような感じで、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.

(Hype-Vの場合) Resources→ADVANCEDの「Disk image location」の場所を変えました。
このファイルが結構大きくなるので、私の場合はCドライブではなく、Dドライブへ移しました。

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

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

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

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

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

http://localhost/

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

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

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

次に、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

フォルダを共有してよいか警告が表示されました。
「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イメージの一覧が表示されます。

このイメージからGUIで、コンテナを作成して起動することもできます。

さいごに

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

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

\オススメ/

コメント

タイトルとURLをコピーしました