🐳
WSL上のUbuntuでDockerをセットアップ
概要
WSL上のUbuntuでDockerセットアップしてHello-worldを実行します。
前提条件
D:\>ver
Microsoft Windows [Version 10.0.22621.2134]
D:\>systeminfo
ホスト名: ****
OS 名: Microsoft Windows 11 Pro
OS バージョン: 10.0.22621 N/A ビルド 22621
OS 製造元: Microsoft Corporation
OS 構成: スタンドアロン ワークステーション
OS ビルドの種類: Multiprocessor Free
登録されている所有者: ****
登録されている組織:
プロダクト ID: 00330-52549-03326-AAOEM
最初のインストール日付: 2023/04/03, 1:53:27
システム起動時間: 2023/08/10, 3:33:02
システム製造元: MouseComputer Co.,Ltd.
システム モデル: DAIV-NG5300
システムの種類: x64-based PC
プロセッサ: 1 プロセッサインストール済みです。
[01]: Intel64 Family 6 Model 158 Stepping 13 GenuineIntel ~3000 Mhz
BIOS バージョン: INSYDE Corp. 1.07.05TMC, 2019/02/01
Windows ディレクトリ: C:\WINDOWS
システム ディレクトリ: C:\WINDOWS\system32
起動デバイス: \Device\HarddiskVolume3
システム ロケール: ja;日本語
入力ロケール: ja;日本語
タイム ゾーン: (UTC+09:00) 大阪、札幌、東京
物理メモリの合計: 32,605 MB
利用できる物理メモリ: 24,923 MB
仮想メモリ: 最大サイズ: 34,653 MB
仮想メモリ: 利用可能: 25,953 MB
仮想メモリ: 使用中: 8,700 MB
ページ ファイルの場所: C:\pagefile.sys
ドメイン: WORKGROUP
ログオン サーバー: \\****
ホットフィックス: 5 ホットフィックスがインストールされています。
[01]: KB5028948
[02]: KB5012170
[03]: KB5029263
[04]: KB5028320
[05]: KB5028756
ネットワーク カード: 3 NIC(s) インストール済みです。
~~~ 略 ~~~
Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。
PS C:\Users\****> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Running 2
作業内容
Dockerのインストール
yellow-monkey@****:~$ for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
yellow-monkey@****:~$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Reading package lists... Done
yellow-monkey@****:~$
yellow-monkey@****:~$ sudo apt-get install ca-certificates curl gnupg
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version (20230311ubuntu0.22.04.1).
curl is already the newest version (7.81.0-1ubuntu1.13).
gnupg is already the newest version (2.2.27-3ubuntu2.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
yellow-monkey@****:~$ sudo install -m 0755 -d /etc/apt/keyrings
yellow-monkey@****:~$
yellow-monkey@****:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
yellow-monkey@****:~$
yellow-monkey@****:~$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
yellow-monkey@****:~$ echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
yellow-monkey@****:~$
yellow-monkey@****:~$ sudo apt-get update
Hit:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Get:2 https://download.docker.com/linux/ubuntu jammy InRelease [48.9 kB]
Get:3 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages [21.4 kB]
Hit:4 http://archive.ubuntu.com/ubuntu jammy InRelease
Hit:5 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:6 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Fetched 70.3 kB in 1s (72.8 kB/s)
Reading package lists... Done
yellow-monkey@****:~$
yellow-monkey@****:~$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Ubuntuの再起動
PS C:\Users\****> wsl --shutdown
PS C:\Users\****> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Stopped 2
PS C:\Users\****> wsl --update
更新をチェック中...
更新をダウンロード中...
更新をインストール中...
この変更は、次回の WSL 再起動時に有効になります。強制的に再起動するには、'wsl --shutdown' を実行してください。
カーネル バージョン: 5.10.102.1
PS C:\Users\****> wsl
Dockerの動作確認
yellow-monkey@****:/mnt/c/Users/****$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:dcba6daec718f547568c562956fa47e1b03673dd010fe6ee58ca806767031d1c
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
sudoでなくても実行できるように設定
yellow-monkey****:/mnt/c/Users/****$ sudo usermod -aG docker $USER
yellow-monkey@****:/mnt/c/Users/****$ exit
logout
PS C:\Users\****> wsl
yellow-monkey@****:/mnt/c/Users/****$
yellow-monkey@****:/mnt/c/Users/****$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
51aac25b1ec2 hello-world "/hello" 11 minutes ago Exited (0) 11 minutes ago adoring_noether
yellow-monkey@****:/mnt/c/Users/****$ docker rm adoring_noether
adoring_noether
参考資料
以下のドキュメントを参考にしました。
Discussion
再起動しているうちに改善されてしまったけれど、下ようなエラーが出てくる場合があります
次再現したら、きちんと対処方法を載せたいです