🔥

Windows 11 で docker を動かす

2024/11/06に公開

今回は、Windows 11で wsl2 がコマンドで簡単にインストールできるようになったので、さっとインストールして、Ubuntuを起動、そこでdockerを動かすまでの手順をまとめます。
https://xtech.nikkei.com/atcl/nxt/column/18/01863/112600005/

WSLとは

Windows Subsystem for Linux の略で、Windows 上で Ubuntu などの Linux ディストリビューションを実行する機能である。
https://www.tohoho-web.com/ex/wsl.html

実行環境

  • エディション:Windows 11 Pro
  • バージョン:23H2
  • OSビルド:22631.4317

インストール手順

  • windowsの検索で terminal と入力し、terminalを起動する。デフォルトでPowerShellが起動する。

  • Windows 11 に wsl2 をインストールする。

> wsl --status
既定のバージョン: 2

Linux 用 Windows サブシステム カーネルは、'wsl --update' を使用して手動で更新できますが、システム設定が原因で自動更新が 発生することはありません。
カーネルの自動更新を受け取るには、 Windows Update の設定を有効にしてください:' Windowsの更新に、その他のMicrosoftの製品 の更新情報を受け取る'。
詳細については、 https://aka.ms/wsl2kernel.
 を参照してください
WSL 2 カーネル ファイルが見つかりません。カーネルを更新または復元するには、'wsl.exe --update' を実行してください。

> wsl --update
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
  • インストール可能なディストリビューションを確認する。
PS C:\Users\soshi> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

  • ここではデフォルトのUbuntuをインストールする。
> wsl --install Ubuntu
インストール中: Ubuntu
Ubuntu がインストールされました。
Ubuntu を起動しています...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: XXXX #ユーザ名を入力。
New password: #パスワードを入力
Retype new password: #パスワードを入力
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 5.15.153.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Wed Nov  6 14:16:57 JST 2024

  System load:  0.36                Processes:             30
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 12%                 IPv4 address for eth0: 172.30.51.26
  Swap usage:   0%


This message is shown once a day. To disable it please create the
/home/XXX/.hushlogin file.
  • そうすると、Ubuntuのterminalとなるので、そのままOSのバージョンを確認してみる。
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
  • 一旦、terminalを再起動すると、新規タブを開くメニューで、Ubuntuが追加されていることがわかる。

  • Ubuntuを選択すると、Ubuntuのterminalが開く。

  • パッケージリストの更新

$ sudo apt-get update
Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Hit:2 http://archive.ubuntu.com/ubuntu noble InRelease
Get:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
...
Fetched 30.5 MB in 9s (3375 kB/s)
Reading package lists... Done
  • パッケージのアップグレード
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  binutils binutils-common binutils-x86-64-linux-gnu cloud-init distro-info-data gcc-14-base gtk-update-icon-cache libbinutils libctf-nobfd0 libctf0
  libegl-mesa0 libgbm1 libgcc-s1 libgl1-mesa-dri libglapi-mesa libglx-mesa0 libgprofng0 libgtk-3-0t64 libgtk-3-bin libgtk-3-common libproc2-0 libsframe1
  libstdc++6 login mesa-vulkan-drivers nano passwd procps python3-update-manager python3-urllib3 snapd update-manager-core vim vim-common vim-runtime
  vim-tiny xxd
37 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 71.9 MB of archives.
After this operation, 2038 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 login amd64 1:4.13+dfsg1-4ubuntu3.2 [202 kB]
Get:2 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gcc-14-base amd64 14.2.0-4ubuntu2~24.04 [50.8 kB]
Get:3 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libstdc++6 amd64 14.2.0-4ubuntu2~24.04 [791 kB]
Get:4 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgcc-s1 amd64 14.2.0-4ubuntu2~24.04 [78.6 kB]
Get:5 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 passwd amd64 1:4.13+dfsg1-4ubuntu3.2 [845 kB]
Get:6 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libproc2-0 amd64 2:4.0.4-4ubuntu3.2 [59.5 kB]
Get:7 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 procps amd64 2:4.0.4-4ubuntu3.2 [707 kB]
...
  • 公式のGPGキーを保存するディレクトリを作成する。
$ sudo mkdir -p /etc/apt/keyrings
  • 公式のGPGキーを取得する。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • この時点で改めてパッケージリストを更新する。
$ sudo apt-get update
  • 公式のDockerリポジトリを追加する。
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • docker インストール
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • sudo権限なしでdockerを実行できるようにするために以下を実行
$ sudo usermod -aG docker $USER
$ su - ${USER}
  • 動作確認
$ docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

コマンド自体は成功した。

Discussion