Windows環境構築 仮想環境編(新入生用)

2025-04-04

仮想環境を使おう

WSLをインストールした。ここからは新しいPCなので仮想環境を作ろう!

What is 仮想環境?

物理的なデバイス(PC)の上に理論的に分割された環境と作ることができる

要するにパソコンをある種きれいに使うことができるということ。

Dockerを使おう!

💡
WSLを入れないとDockerは使えないので注意

Dockerの基本的な概念について知りたい場合は以下の記事参照しよう!

https://qiita.com/S4nTo/items/977d28b0eac316915702

インストール手順

https://zenn.dev/seiya0/articles/tech-docker-desktop-for-win-install

Docker Install

https://docs.docker.com/desktop/install/windows-install/

docker -v で確認する必要あり!これで環境が構築できた。

Dockerに詳しくなろう!!

Docker詳解 (1)

Dockerの入門的な「仮想環境がうんたら」とか「Dockerはこんな技術で~」とかはいろいろあるので書きません。

ここではDockerって結局何やれるの?どうやるの?を書いていきたい

参考程度に

https://qiita.com/fsd-fukufuku/items/524d55042b0c20651bde

 ネットワーク関係をやるときに

ifconfig コマンドを使いたかったがなぜかWSLでは使えなかったので以下を見ると非推奨らしいので新しいものを入れてみた

https://ubuntu.perlzemi.com/blog/20200324174004.html

Dockerに関する簡単な説明

Docker技術はPCの中に別のPCを宿らせるみたいなこと

Dockerの自分のローカルの環境とは全く無縁

なので自分のフォルダの中にDockerの環境が作られるイメージではなく別の空間に存在するイメージ

自分はこの感覚を持っていないせいで時間がバカかかった。

Dockerのマウント

そんなDockerだが自分のファイルをDockerの中に入れたいことがある。

すでに存在するファイルをDockerの中に入れたい。この時にファイルをマウントするということが必要である。

Dockerのマウントは二種類存在する

  • バインドマウント DockerのホストOS つまりVSCodeでいままさに作っているディレクトリをマウントすること。これにより、自分の編集したファイルがコンテナの消去で消えることがない(永続化する)
  • ボリュームマウント Dockerエンジンの中に領域がありそれをマウントすること。SQLなどを使うときにこれを行うことがある。これのバックアップを取る方法も存在する。

DevContainerを使おう

💡
Dockerを入れないと使えないので注意

Docker環境を自分のワークスペース環境にすることができるもので環境の統一などがしやすいものになる。

使ったことがなければ次のMicrosoftのチュートリアルを用いよう。これでNode.jsの環境構築ができるチュートリアルになっている。

https://code.visualstudio.com/docs/devcontainers/tutorial

dev container reference

https://containers.dev/implementors/json_reference/

DockerでGPU環境を使おう!

機械学習をするためには、GPU環境を使う必要があります。GPU環境は非常に高速で快適な機械学習にとっての環境を提供してくれます!GPU環境をぜひ作りましょう!

まずは大変なほうから作ってみよう!

さてどのようにGPU環境を作るかですが、Docker+WSL2+Ubuntu+GPU環境で作ってみたい!

https://zenn.dev/yumizz/articles/627d4e4821c636

使用環境 NVIDA RTX 4060Ti 16GB

やりたいこと GPUを用いた環境でPytorchによる機械学習などなどを回せるようにしたい!

結局GPUを使いたい環境構築はPython以外にはあまり考えられないないのですでにある環境を使えばそれで充分

少なくともPytorchが回せないと困る

そこで、NVIDIA Container Toolkit のチュートリアルに沿って進めてみよう!

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html
💡
要注意 Dockerのチュートリアルで

遭遇した問題

この環境下でNVIDIAのチュートリアルを行っている際に、

Docker の構成
次のコマンドを使用して、コンテナランタイムを設定します。nvidia-ctk

sudo nvidia-ctk runtime configure --runtime=docker
このコマンドは、ホスト上のファイルを変更します。 Docker が NVIDIA Container Runtime 
を使用できるように、ファイルが更新されました。nvidia-ctk/etc/docker/daemon.json

Docker デーモンを再起動します。

sudo systemctl restart docker

の部分を実行するときに、

$ sudo nvidia-ctk runtime configure --runtime=docker
[sudo] password for vyuma: 
WARN[0000] Ignoring runtime-config-override flag for docker 
INFO[0000] Loading config from /etc/docker/daemon.json  
INFO[0000] Wrote updated config to /etc/docker/daemon.json 
INFO[0000] It is recommended that docker daemon be restarted. 

と、次には

$ sudo systemctl restart docker
Failed to restart docker.service: Unit docker.service not found.

というエラーが出た。

しかし、DockerDesktopの再起動をすると次のコマンドではうまく通った

sudo docker run --rm --gpus all ubuntu nvidia-smi

出力

nable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
31e907dcc94a: Pull complete 
Digest: sha256:8a37d68f4f73ebf3d4efafbcf66379bf3728902a8038616808f04e34a9ab63ee
Status: Downloaded newer image for ubuntu:latest
Thu Sep 12 01:32:57 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.73.01              Driver Version: 552.12         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4060 Ti     On  |   00000000:01:00.0  On |                  N/A |
|  0%   47C    P8              6W /  165W |    1516MiB /  16380MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

そこまでできたらあとは

docker run -it --gpus all pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime

で行ってみる。

そのあとpytorchでGPUが使えるか確認できればOK

でもDocker環境はできたけどVSCodeでの編集はどうやってやるのか?

そこでDevContanierを使おう!

https://zenn.dev/t_sumida/articles/3e87b030c30cbc

公式ドキュメントが一番安心できる

https://code.visualstudio.com/docs/devcontainers/containers

あとはChatGPTに聞くとかなりのことは教えてくれる!

環境構築編(言語篇)

VSCodeの拡張機能で十分なものはこの環境構築には入れていない。(バニラCSS JS Htmlなど)

node.js環境構築編

nodeについてはdevContainerの基本セットが存在するので基本的にはそちらを用いる。

ただし内部でDockerを使わないプロジェクトもある。あとは、Dockerがちゃんと整備されていないような開発環境の時には、ローカルで見ることができていたほうがよい。またすぐに確認したい時などはローカル環境で確認するほうが早い時もある。

そこで開発環境のために、node.jsのバージョン管理ツールを導入することにする。

Node.js用バージョン管理ツールNVMのインストール

Node.jsはバージョンアップがたびたびされるためにバージョンを確実に揃えられるようにするためにバージョン管理ツールnvmをインストールする。

次の記事を用いて、nvmをインストールして、その中で最新バージョンのNodeを入れることにする。

https://zenn.dev/keijiek/articles/4976559b876090

NVM公式ドキュメント

https://github.com/nvm-sh/nvm#install-script

この記事でインストールすることができる!!

この記事にあるようにnpmとyarmもインストールしておこう!

https://qiita.com/c8h9no2/items/9a2e1278976db1b390a5

環境構築の時に役立ちそうな記事

npxとnpmの違いって何?とおもっている方向け

https://qiita.com/monaka33/items/5597f4aabde5c3f5de11https://zenn.dev/ikuraikura/articles/71b917ab11ae690e3cd7

LaTeX環境構築編

ここだけでも1日がかりかもしれないので念頭に置いておくべし。もしかしたら一番難しい作業かもしれない。

LaTeX環境は本当は環境構築はおそらくこの環境構築の中でも随一の難しさを誇る。必要なライブライや設定がとても多い。そのために手前味噌ではあるが、次のファイルを参照するととても良い。

https://github.com/vyuma/LaTeX_repo/releases/tag/v1.1.0

おすすめ記事

装飾の画像
新歓情報はこちら
装飾の画像