Python使うためにWindows PCに仮想環境を作る

この記事は約8分で読めます。
広告

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」をクリックしました。

私は大学のPCにインスールを試みましたが、導入時のアカウントは「管理者権限」がありませんでした。この場合再起動後、Dockerを起動してもアクセスが拒否されました。その場合自分がログインで利用したユーザーアカウントをdocker-users groupに入れる必要があります。

手順的には「管理者権限」があるアカウントでウインドーズのロゴ(左下のスタート?)を右クリック後「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番目はタスクマネージャー→パフォーマンスを見ると確認出来ました。

追記:あとで調べたらSLATはかなり古いCPUの話らしく、Win 8時代の技術のようです。以下のサイトで調べ方が確認出来ました。

How to Check if Your CPU Supports Second Level Address Translation (SLAT)

オフィスのコンピュータの場合

なんとなく出来そうなので、WSL-2を入れてみます。導入は以下のマイクロソフト・サイトの指示に従いました。

管理者権限でパワーシェルから言われた通りコマンドを入れてみます。パワーシェルはウインドーズのロゴ(スタート)を右クリックすると見つかります。

wsl --install

するとこんな画面が出てきました。

何かWSLのヘルプについて書かれている感じでインストールされた様子がありません。よく読むとこの場合は「wsl –list –online」を入れて有効なディストリビューションを確認せよ、と言っています。入れてみました。

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を導入していこうと思います。

コメント

にほんブログ村