Docker の特徴
今回、コンテナ仮想化技術の「Docker」のインストール、並びに、動作確認にチャレンジしてみました。インストールにあたっては、以下に示す動画や記事を拝見させていただきました。
・理屈はさておき、Dockerを使って、あっという間にPythonのデータ分析の環境構築をする|WindowsとMacの説明あり
(キノコード / プログラミング学習動画のYouTuberさんの動画)
・WSL2導入|WinアップデートからWSL2を既定にするまでのスクショ
(Qiita @tomokei5634さんの記事)
Docker を使う理由
先日、MacBookProを注文しました。MacBookProが届いたら、直ぐに、機械学習を行うための環境構築をしたいと思います。ただし、これには試行錯誤が予想されます。その過程で、OSを改変して、その後に影響が出る可能性があります。
このDockerは、仮想のパソコンにシステムを構築するため、実際のOSには影響なく、何度でもやり直しが可能です。他にも数多くのメリットがあります。詳細については、上記の動画をご覧いただきたいと思います。
今回、Dockerとはどのようなもので、どのように使うかを知るために、Windowsで試してみたいと思います。MacBookProが届いたら、M1チップのMac OS(Big Sur)にインストールしたいと考えています。しかし、その他のソフトウェア同様に、Dockerは、まだ、M1には対応していない可能性があります。
早速、動画や記事を見ながらインストールを行いました。予想通り、苦難の連続でした。その過程を、このページに記録しておきたいと思います。私のパソコンのスペックや、人工知能との関わり合いは、親ブログに記載されています。
・「Python による学習環境の構築」
(初めて、機械学習(人工知能)の勉強を始める人のためのブログ)
インストール・動作確認の概要
以下の流れで、作業を進めたいと思います。
【Docker Desktop のインストール】
【イメージの作成】(ビルド)
「DokerFile」からイメージを作成する(Ubuntsu、Anacondano、Jupyter Notebook)
【コンテナの作成】
【動作確認】
【Docker Desktop のインストール】
こちらの記事を書くのは2回目です。1回目の失敗の記録は、【こちら】です。
2回目を書いたのには、訳があります。この通りにやったら「うまくいく」を、示したかったからです。もちろん、失敗から得られるものは少なくないです。しかし、大部分の方には必要のない情報だと思います。ご覧になりたい方は「こちら」をどうぞ!
今回、説明するのは、Windows10Pro に、Docker Desktop をインストールする方法です。一部の操作は、不要な場合もあると思います。各自の判断で行ってください。作業の大まかな流れを示します。
1 最新の Windows10 への Update/仮想化のサポート
2 カーネルコンポーネントの更新/WSL2をデフォルトに設定
3 Docker for Windows による Docker Desktop のインストールと再起動
4 Docker Desktop の初期設定(チュートリアルのインストール)
5 Docker Hub の登録(必要に応じて)
1 最新の Windows10 への Update/仮想化のサポート
最新の Windows10 への Update
・ストレージの空き容量(数10GB必要)を確認します。
「スタート」アイコンの右横の「検索」で「ストレージ」を検索し、「ストレージの設定」を選択します
・Windows10 のダウンロードサイトへ移動し、最新版をインストールします。
Windows 10 のダウンロード
・再起動後に、Windows のバージョンを確認します。
ショートカットキー Win+R → 「winver」と入力する
(old) Ver.2004(OS bild 19041.685)[2021/1/ 8時点]
(new) Ver.20H2(OS ビルド 19042.685)[2021/1/10時点]
仮想化のサポート
管理者の権限で、Powershellを使って以下のコマンドを実行します。
「管理者の権限」にするには、アプリを右クリックして「管理者として実行」を選択します。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart |
2 カーネルコンポーネントの更新/WSL2をデフォルトに設定
カーネルコンポーネントの更新のためのパッケージを、以下のリンクからダウンロードします。
・x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ
ダウンロードしたパッケージ「wsl_update_x64.msi」を実行します。これで、「カーネルコンポーネントの更新」が終了します。
正常に更新されたら、以下のコマンドを実行して、WSL2をデフォルトにします。
管理者の権限で、Powershell を使って以下のコマンドを実行します。
wsl –set-default-version 2 |
3 Docker for Windows による Docker Desktop のインストールと再起動
下記のサイトから、「Docker for Windows」をダウンロードして、「Docker Desktop 3.0.4(51218)」をインストールします。
ダウンロードしたファイル「Docker Desktop Installer.exe」を実行して、終了後にパソコンを再起動します。
4 Docker Desktop の初期設定
再起動すると、Docker Desktop が自動で起動して(自動で起動しない場合は、自分で起動してください)、初期設定画面(チュートリアルをインストールするための)が表れます。
中央部の「START」ボタンを押してください。
その後は、① Clone、② Build、③ Run、④ Share の順番で作業を行います。作業の方法は簡単です。画面中央部に表示される、「青地に白色文字の四角形のウインドウ」をクリックするだけです。自動で、右側にある「PowerShell」のウインドウで、四角形内に表示されたコマンドが実行されます。
「PowerShell」上でコマンドの終了を確認したら、「Next Step」をクリックします。以後は、④ Share まで同じ事を繰り返します。以上で、初期設定は終了です。
<補足>
先ほどの初期設定の結果を確認します。左側のメニューから「Images」を選択して、「Images on disk」画面を開きます。なお、下記の user は、「Docker HUB」(5で説明)のユーザIDのことです。
(IMAGE NAME) | (USE) | TAG | IMAGE ID | CREATE | SIZE |
user/docker101tutorial | IN USE | latest | 12桁の16進数 | 作られた時刻 | 27.69MB |
docker101tutorial | IN USE | latest | 〃 | 〃 | 27.69MB |
alpine/git | IN USE | latest | 〃 | 〃 | 28.41MB |
5 Docker Hub の登録
最後に、「Docker Hub」のユーザー登録を行います(必要に応じて)。アカウント情報(ID、E-mail、Pass)を入力し、メールアドレスの確認を経て「アカウント」が有効になります。これで、「Docker」の準備は終了です。Docker 起動後、右上の「Sign in」でログインしてください。
【イメージの作成】
ここで、簡単に、「Docker」での作業手順を説明します。(誤りがありましたらご指摘願います)
① イメージの作成 「DockerFile」から、イメージを作ります。
② コンテナの作成 ①で作成したイメージをもとに、実際に動作するコンテナを作ります。
③ コンテナの実行 ②で作成したコンテナを実行します。ここでいう実行とは、1つの仮想パソコンを起動させる意味です。起動させた仮想パソコンで、目的の作業を行います。
それでは、イメージを作成します。イメージの作成のための情報は、「DockerFile」に書き込んでおきます。今回は、kino-code さんが作成した「DockerFile」を使わせていただきます。ダウンロードしたファイルは、デスクトップの「mydocker」(必要に応じて作成)に保存してください。
この「DockerFile」からイメージを作る(これを「ビルド」という)ために、コマンドプロンプトで以下のコマンドを実行します。
docker build -t kino-code:latest \users\user\desktop\mydocker |
kino-code | イメージ名 | これから作成するイメージの名前 |
user | ユーザ名 | Windowsを使っているユーザの名前 |
mydoker | フォルダ名 | DockerFileが入っているフォルダの名前 |
実行後、Docker Desktop の「Images on disk」画面を開きます。
(IMAGE NAME) | (USE) | TAG | IMAGE ID | CREATE | SIZE |
kino-code | latest | 12桁の16進数 | 作られた時刻 | 3.8GB |
このように、新しいイメージが追加されます。
【コンテナの作成】
次に、先ほど作った「kino-code」というイメージから、「kino-code」というコンテナを作成します。最初に、コマンドで試したところ、コンテナを作成できませんでした。従って、「Docker Desktop」を使ってコンテナを作成しました。
・Docker Desktop の「Images on disk」画面を開きます
・「kino-code」イメージの右端に表れる「RUN▷」をクリックします
・「Optional Settings ∨」をクリックします
・「Container Name」に「kino-code」を入力します
・Volumes の「Host Path」の「…」で「デスクトップのmydoker」を選択します。なお、「Container Path」については、まだ、入力形式が分かりません。
<補足> 以下に示す方法では、コンテナを作成できませんでした。
コマンドプロンプトで、以下のコマンドを実行します。
docker run -p 8888:8888 -v \users\user\desktop\mydocker:\workspace –name kino-code IMAGE ID
【動作確認】
前節で作った、「kino-code」というコンテナを実行したいと思います。
・Docker Desktop の「Containers / Apps」画面を開きます。
開くには、左側のメニューから「Containers / Apps」を選択します。
・「kino-code」コンテナの右端に表れる「>_」(CLI)をクリックします。
・「コンソールウインドウ」が開くので、そこで作業を行います。しかし、「Jupyter Notebook」が正常に動作しません。
※ チュートリアルにおいては、上記の方法で正常に動作しました。従って、システムそのものは、全て正常に動作しているようです。
「Kino-code」さんの場合は、ポートが衝突していて、正常に動作しないようです。ポートを変更したいと思います。
「DockerFile」の中のポートの記述を変更して、ポートの衝突は回避できましたが、他の理由で「Jupyter Notebook」の起動はできませんでした。ここまでくると、インストールや動作確認の問題を超えるので、一度、終了したいと思います。
これから、本格的に、「Docker」の勉強をしていきたいと思います。
Docker 学習のための参考動画【追記】
Docker 学習のための参考動画のリンクを作成しておきます。
[1]【2021年最新】Docker環境構築入門|14分でdocker-composeまで完全解説!【windows/mac対応】Dockerの使い方
[2]【入門者も理解】Dockerとはなにか?【専門用語少なめ】
[3]【Docker超入門 #1】Dockerって何?何が良いの?(シリーズ)
コメント
[…] 【Docker のインストールと、動作確認(for Windows)】 […]