Dockerの導入手順
かなり乗り遅れた感がありますが、私もビックデータ解析をやってみようと考えました。人並みにPythonを使おうと考え、そのディストリビューションであるAnacondaを直接Windows 10に昨日導入しました。無事入れられましたが、話によると「コンテナ」という技術を使って仮想環境をWindows内に作り、そこで動かした方が後々良い、とのこと。その仮想環境を作るのに「Docker」が良さげらしいので、それを導入してみることにしました。
ちなみにDockerを動かすOSはLinuxらしく、Windowsの場合、その実現のためにWSL(Windows Subsystem for Linux)を導入してDockerを利用していくとのことです。難しいこと考えずに言われた通りやってみることにします。
Docker Desktop導入
Google.comで「windows docker」というキーワードを入れると一番上に「Install Docker Desktop」が出てきました。
Install Docker Desktop on Windows
System requirement(必要なシステム)でWindows 10の場合、
- Windows 10 64-bit: Home or Pro 2004 (build 19041) or higher, or Enterprise or Education 1909 (build 18363) or higher.
- Enable the WSL 2 feature on Windows.
最初の条件は私の場合、Education 20H2だったので大丈夫でした。不明な方はウィンドーズのロゴを左クリック→設定(Settings)をクリック→出てきた画面で左側のメニューから一番下の「このPCについて(About)」をクリック→Windows 10 の仕様(Windows specifications)で確認出来ます。
2つ目の条件は別なページに飛ばされたので、とりあえず無視して次に進むことにします。「Download Docker Desktop for Windows」からDockerをインストールしました。4/30/2022現在でダウンロードしたexeファイルの大きさは499MBでした。
次にダウンロードした「Docker Desktop Installer」をダブルクリックしDockerDesktopをインストールしました。Dockerのバージョンが4.7.1であることがここでわかります。途中以下のような画面が出てきましたが、特に変えずそのまま「OK」をクリックしました。
ファイルを解答する様子が画面に出て、しばらくすると終了しリスタートする、いう画面になりました。ここでも大人しく指示に従い「Close and restart」をクリックしました。
手順的には「管理者権限」があるアカウントでウインドーズのロゴ(左下のスタート?)を右クリック後「Computer Management」を選択します。それからLocal Users and Groups > Groups > docker-usersと選び、普段自分が使うアカウントをそこに追加します。前回と同様に「Docker」を起動させると今回は無事起動しました。Docker Subscription Service Agreementがありましたが、了承しないと使えないので「Accept」をクリックしました。個人使用ですし、大学で学術的な利用ですから無料のままで問題ないはずです。
WSL-2導入
WSL-2を導入するには以下の条件が必要と書いてありました。
- 64-bit processor with Second Level Address Translation (SLAT)
- 4GB system RAM
- BIOS-level hardware virtualization support must be enabled in the BIOS settings.
1番目は良くわからずもクリアしていると仮定。2番目は問題なくクリア。3番目はタスクマネージャー→パフォーマンスを見ると確認出来ました。
How to Check if Your CPU Supports Second Level Address Translation (SLAT)
なんとなく出来そうなので、WSL-2を入れてみます。導入は以下のマイクロソフト・サイトの指示に従いました。
管理者権限でパワーシェルから言われた通りコマンドを入れてみます。パワーシェルはウインドーズのロゴ(スタート)を右クリックすると見つかります。
wsl --install
するとこんな画面が出てきました。
何かWSLのヘルプについて書かれている感じでインストールされた様子がありません。よく読むとこの場合は「wsl –list –online」を入れて有効なディストリビューションを確認せよ、と言っています。入れてみました。
幾つかのディストリビューションが見えました。次の指示は「wsl --install -d <DistroName>
を実行してディストリビューションを導入せよ」というものですが、どのディストリビューションが良いのかよくわかりません。仕方ないので一つ一つマニュアルで入れることにしました。
Manual installation steps for older versions of WSL
上の指示通り以下のコマンドを打ちました。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
「The operation completed successfully」と出たので、次のコマンドを入れます。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
これも成功、と出てきました。ここでWSLのインストールとWSL-2へのアップデートを完了させるため再起動せよ、と書いてあるので指示に従いました。
WSL 2 Linux カーネル導入
再起動後、WSL 2 Linux カーネル(Linux kernel update package)を導入します。インテルCPUの場合は以下のサイトを利用します。
WSL2 Linux kernel update package for x64 machines
リンクをクリックすると勝手にwsl_update_x64.exeファイルがダウンロードされるので、それをクリックしました。
「Next」をクリックするとすぐに完了しました。
WSL 2 をデフォルトに
次にWSL 2 を既定のバージョンとする設定をしました。コマンドプロンプトもしくはPowerShellを管理者権限で起動して、以下のコマンドを打ち込みました。
wsl --set-default-version 2
操作は成功裏に完了しました、と出たので、次のステップに移ります。
Linuxディストリビューション導入
上で「訳がわからない」と言った所に戻ってきました(笑)。Microsoft Storeを開け、というので開きます。私がMicrosoft Storeを開けると3つのバージョン(kali Linux、Debian、Apline WSL)しか出てきませんでした。なぜ?
この中で一番星が多く、聞いたことのあるディストリビューションDebianを選びダウンロードしました。インストール完了後「Open」と出てきたので、それをクリックしました。するとDebianのターミナルのスクリーンが立ち上がり、User NameとPasswordを作成するよう促されました。自分が覚えていられるものを使って設定しました。
次にパッケージのアップデートとアップグレードを行いました。
sudo apt update && sudo apt upgrade
コマンドを入れるとパスワードを入れるように促されたので入れ、その後本当に導入するか聞かれたので「Y」を入れて導入しました。アップデートが完了し、「Exit」と打ち込んでDebianのターミナルを終了させました。
Docker Desktop の確認
スタートメニューからDocker(Docker Desktop)を起動してみます。
すると私の場合コンテナが動いていない、という画面が出てきました。
指示に従い、コマンドをコピー&ペイストしました。すると以下のようになりました。
また次のような警告文が出てきました。
アクセスを許可しないと使えなさそうなので、許可しました。管理者権限が必要でした。するとDockerの画面が次のように変わっていました。
コンテナが動いているようです。
WSLのバージョンの確認
wsl -l -vを用いてWSLのバージョンを確認してみました。
PS C:\Users\XXXXX> wsl -l -v
NAME STATE VERSION
Debian Stopped 1
docker-desktop-data Running 2
docker-desktop Running 2
何故かDebianは1になっています。2に変更すべく以下のようなコマンドを入れました。
wsl --set-version debian 2
すると無事Debian Stopped 2となったことを画面で確認出来ました。
以上、Docker Desktop for Windowsの導入をやってみました。今日はこのぐらいにし、次回はDockerでPythonのディストリビューションの1つAnacondaを導入していこうと思います。
コメント