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

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

Docker
スポンサーリンク

Dockerを使おう

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

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

2021/10/10: 最新のDocker Desktopで試しました。

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...

ダウンロード

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

Windows 10 Pro または Enterprise の64-bitが必要です。

私はWindows 10 Proを使用しております。

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

Docker Hub

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

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

インストール

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

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

今回は、WSL2ではなくHyper-Vで起動します。

2つのチェックボックスがありますが、「Install required Windows components for WSL 2」のチェックを外し、次へ進みます。

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

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

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

Hyper-Vが有効になっていないとエラーになります。

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

ということで、Hyper-Vを有効にします。
「Windowsの機能の有効化または無効化」を開きます。
手っ取り早くWindowsの検索で「Hyper-V」と打ってもOKです。

Hyper-Vを探し、以下のようにチェックを入れます。

追加後、一度再起動が必要になります。

再起動後、Dockerが正常に起動すると以下の画面が表示されます。
必要に応じてチュートリアルを見ましょう。

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

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

PS C:\Users\xxx> docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

以前ハマったポイント

2021/10/10 追記:最近ではVirtualBoxが対応しているようで、DockerとVirtualBoxは共存できるようです。以下、当時の話。

Hyper-Vを有効にすると、VirtualBoxが起動できなくなります
(当時使っていたマシンでは、ブルースクリーンになりました・・)
VirtualBoxを使う時は、Hyper-Vを無効にする必要があります。

また「仮想化」を有効にする必要があります。(無効の場合、Hyper-Vを有効にできなかったような)
タスクマネージャーの以下の箇所を確認します。
無効になっている場合は、BIOSの設定で有効にする必要があります。
→設定方法は、お使いのマシンの型番と「仮想化 有効」でググると出てくるかと思います。

スポンサーリンク

設定

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

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は簡単に環境を用意でき、とても便利です。
ぜひ活用しましょう。

コメント

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