📖

wsl上のubuntuにdockerをインストール

2022/08/31に公開

DNSの設定(ubuntu上の設定)

パッケージを更新する際に、DNSの設定をしていない場合、ダウンロードでエラーが出るので最初に修正しときます。
また、再起動の都度「/etc/resolv.conf」が書き換わるので、「/etc/wsl.conf」を作成し書き換わらないように設定をする

wsl.confファイル確認

ubuntu上
cat /etc/wsl.conf

設定追記作成

ubuntu上
sudo tee -a /etc/wsl.conf << EOF

[network]
generateResolvConf = false
EOF

ubuntuを再起動

windows上
wsl --shutdown

resolv.confの確認

ubuntu上
cat /etc/resolv.conf

/etc/resolv.confに追記

ubuntu上
sudo tee -a /etc/resolv.conf << EOF
nameserver 8.8.8.8
EOF

削除されないように属性変更

ubuntu上
sudo chattr +i /etc/resolv.conf

パッケージ一覧をアップデート

ubuntu上
sudo apt-get update && sudo apt dist-upgrade -y && sudo apt autoremove -y
ubuntu上
sudo apt-get install -y ca-certificates curl gnupg lsb-release vim git

Docker の公式 GPG キーを取得する

ubuntu上
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

リポジトリを更新する

ubuntu上
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
sudo apt-get update

Docker Engine のインストール

ubuntu上
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
ubuntu上
sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove -y

Dockerのバージョン確認

ubuntu上
docker -v

Docker Engine の権限設定

ubuntu上
sudo usermod -aG docker $USER

Dockerの自動起動設定

まずは、docker startをsudoなしで実行できるようにする

ubuntu上
sudo visudo

最後の行に以下を追加して、保存

ubuntu上
%docker ALL=(ALL)  NOPASSWD: /usr/sbin/service docker start

「ctrl + o」:保存
「ctrl + x」:終了

次に、ubuntu起動時に「docker start」が実行されるようにする

ubuntu上
sudo vi ~/.bashrc

最後の行に以下を追加して、保存

ubuntu上
if [ $(service docker status | awk '{print $4}') = "not" ]; then
  sudo service docker start > /dev/null
fi

動作確認

windows上で以下のコマンドでubuntuを落とす

windows上
wsl --shutdown

ubuntuを立ち上げたあと、以下を実行し確認

ubuntu上
docker -v
ubuntu上
docker compose version
ubuntu上
docker container run --rm hello-world

Discussion