0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker + WSL2 のWindows環境を構築

Last updated at Posted at 2025-12-05

Docker + WSL2 のWindows環境を構築

今回、Windowsの環境でDockerを使えるようにし、趣味としてプログラミングが出来るようにしたい。

WSL2(Ubuntu)の準備

Ubuntu 24.04.01 LTS

今回利用するのは、Ubuntu 24.04.01 LTSです。
image.png

エラーの発生:0x8007019e

起動してみると・・・
image.png
エラーコード 0x8007019e は、「Windows Subsystem for Linux (WSL)」という機能が、Windows側でまだ有効になっていない ことを意味している。

エラーの対応:0x8007019e

WSL2環境で利用するために次の設定を行う。
image.png

  • Linux用 Windows サブシステム
  • Virtual Machine Platform (WSL2を利用する場合)
    この二つの有効化が必要である。

image.png

Linux 用 Windfows サブシステムのアップデートなどが入る。

image.png

エラーの発生:0x80370102

エラーコードが 0x80370102 は「パソコンの仮想化機能(Virtualization)」の設定のことだ。

タスクマネージャーのパフォーマンス「CPU」を見ると「仮想化」の項目がある。ここが私は無効であった。

エラーの対応:0x80370102

BIOSメニューの中から「Virtualization Technology(Intel-VT)」や「SVM Mode(AMD-V)」といった項目を探し、Enabled(有効) に変更する。

問題解決

buntu 24.04.01 LTS を起動すると次のような画面が表示された。

image.png

image.png

ここから、UserとPasswordを登録していきます。
image.png

登録が出来ました。

コマンドラインで次の内容を実行するとWSLのバージョンが確認可能だ。

wsl -l -v

Docker の導入

DockerのUbuntuにDocker Engineをインストールするを参考に導入を進める。

「セキュリティキー(GPG鍵)の取得」と「ダウンロード先(リポジトリ)の登録」を行う。
sodo apt updateで登録したDocker公式サーバーの情報を読み込み、パッケージリスト(カタログ)を最新にする。

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

sudoコマンドを利用しているため、パスワードの要求がある。
設定したものを利用する。

image.png

Dockerの最新版をダウンロードする。

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

image.png

Dockerサービスはインストール後に自動的に起動する。

次のコマンドで起動状況を確認することが可能です。

sudo systemctl status docker

image.png

実行することでインストールが成功することを確認してください。
hello-world

sudo docker run hello-world

image.png

docker compose version 

dockerを利用する人は、docker composeも利用すると思われる。
確認しておきましょう。

GPUを仮想環境から利用

GPUを利用可能な環境であるか、調査しましょう。

nvidia-smi

GPU情報が表示されればLinux側からGPUが識別されています。

最後に、コンテナの中から識別できているかの調査もしましょう。

sudo docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi

ここで問題がなかった場合はいいが…


エラーの発生:could not select device driver ""

Unable to find image 'nvidia/cuda:12.0.0-base-ubuntu22.04' locally
12.0.0-base-ubuntu22.04: Pulling from nvidia/cuda
0a0d0d55d972: Pull complete
aece8493d397: Pull complete
cb5efdcf30fe: Pull complete
56cb4663b3f5: Pull complete
6c0deaabac71: Pull complete
Digest: sha256:4e9da312e1f5affc0ab1b2cb3f1141e163849dcd850d66fe315138e82e85427d
Status: Downloaded newer image for nvidia/cuda:12.0.0-base-ubuntu22.04
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]

Run 'docker run --help' for more information

エラーメッセージ could not select device driver "" は、DockerがGPUを使うための「NVIDIA Container Toolkit」という連携ツールが入っていない(または設定されていない)ことを示している。

エラーの対応:could not select device driver ""

必要なツールのダウンロード

  • curl: インターネットからファイルをダウンロードするためのツール。
  • gnupg2: セキュリティキー(暗号鍵)を扱うためのツール。
sudo apt-get update && sudo apt-get install -y --no-install-recommends \
   curl \
   gnupg2

リポジトリの登録

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

NVIDIAのリポジトリから最新を取得

sudo apt-get update

「NVIDIA Container Toolkit」の最新の安定バージョン or 特定バージョンの導入

安定

sudo apt-get install -y nvidia-container-toolkit

特定(私が実施)

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.18.1-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

Dockerの設定ファイル(/etc/docker/daemon.json)を自動編集して、GPU機能を使えるようにしている。
インストール直後にDockerは、NVIDIAツールの存在を知りません。
このコマンドを実行することで、Dockerの設定に「NVIDIAのランタイムを使ってね」という記述が追記される。

sudo nvidia-ctk runtime configure --runtime=docker

Dockerの再起動

sudo systemctl restart docker

image.png

最後に、再度コンテナ内から確認できるか調査しましょう。

sudo docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi

GPUの情報がコンテナ内から確認できた。

サービスの起動と自動化

sudo systemctl enable docker で再起動後の自動起動を設定。

sudo systemctl start docker または sudo service docker restart でサービスを即時起動し、設定を反映する。
$USERがsudo なしで docker コマンド**を実行できるようにする。

sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER

参考一覧

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?