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 Desktop→WSL2で構築したUbuntuにDockerを入れる

Posted at

これまでWindowsPCではDockerDesktopなるものを使用していたのだが、
そもそもDocker導入時にインターネット検索をすると
「WindowsでDockerを使うならDockerDesktop!!」
「WindowsでDockerを使うならDockerDesktop!!」
と半場洗脳に近い状況でDockerDesktopの導入方法が記載してあったので何も考えず入れていた。
ただ普通に考えてWSL2の中のUbuntuにDocker入れればよくない?
と思ったのと、DockerDesktopが有償になったことでそもそも企業でDockerDesktopを使用していないため
「僕のPCではできるのに会社のはわからん!」状態を避けるために自宅PCもDockerDesktopから卒業する日が来たのだと感じた。

さよならDockerDesktop

まずはDockerDesktopをコントロールパネルからアンインストールする
image.png

グッバイ!!!!
image.png

こんにちはWSL

WSLを起動してここからDockerをインストールする
今回はWSLにUbuntuを入れているわけだからここから先は基本的に公式手順にのっとる

  • ゴミの削除
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
  • インストール前の設定
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get 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:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

  • インストールの実施
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • hello world
sudo docker run hello-world

image.png

とまぁこんな感じでできるのだが、実際にコマンドをコピペするだけでは理解できていない個所があるので少し説明を加える

### 詳細

sudo install -m 0755 -d /etc/apt/keyrings

Dockerインストール時にGPGキーを取得する必要があるのだが、
このinstallは実際のインストールというよりもmkdirに近い
mkdirで作成したディレクトリにchmodで権限付与する必要があるがinstallを使えば権限を付与しながらディレクトリを作成できる。

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

これは実際にDockerの公式サイトからGPGキーを取得してdocker.ascという場所に保存しているだけ。
昔のやり方だとdocker.ascではなくtrusted.gpg.dみたいなディレクトリの中に保存していたりする。

実際にcurlで見てみると以下のような感じ。

image.png

端的に言うとここまではDockerInstallするときにアクセスが必要なサイトの認証設定を行っている。
このキーがあるのでDockerのリポジトリサイトを信頼しているよ!ということになる。

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

これはDockerInstall時のリポジトリ先を書き込んでいる。
image.png

基本的にapt時のリポジトリ先を分けているが、別にsources.listに直接記載してもいい。

apt時のリポジトリ先はこのsources.listに記載するかsources.list.d内に記載するか好きにすればよい。

image.png

例えばこれらは公式のリポジトリ先ではあるが、会社のPCなどで社内のリポジトリ先を変更しなくてはいけないというときはリポジトリ先を社内のミラーリポジトリに書き換える必要がある。

そうして出来上がったリポジトリ先とGPGキーをつかってDockerインストールを行っている。

結果

特に導入が難しいわけでもないのでDockerDesktopを卒業する方はぜひ使用してください。
私はデスクトップをきれいに保ちたいtypeなのでDockerDesktopのIconが消えただけでも幸せでした。

また社内で利用する場合はDockerCLIとDockerDaemonのプロキシの設定が必要あるのでご注意下さい。

いじょ

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?