🅿️

POP!_OSにDocker Desktopをインストールする

2024/05/21に公開

概要

目指すところ

linuxディストリビューションの一つ、POP!_OSで稼働するミニPCにDocker Desktopをインストールする。備忘録。

対象

Dockerやら仮想環境は使ったことがあるけどlinuxにインストールするのは初めてだよという人向けだと思います。

前提

ハードウェア

中華メーカーCHUWIのLarkBox X 2023 RAM12GBモデル
メモリは16GBで欲しかったけど、メーカー欠品ぽかったので。Amazonで2.5万円しないくらいでした。すごい時代だ。

IntelのN100というプロセッサを積んだ低電力ミニPC郡の1つです。CHUWIというメーカーは知りませんでしたが見た目も可愛いし息してる?というくらい静かで気に入ってます。

元々Windows11が入っていましたが、今回linux系OSで遊びたかったのでPOP!_OSに入れ替えています。

OS

system76が開発しているPOP!_OSを今回使用。UbuntuベースのlinuxOSです。
近年若干マイナーなのですが、選定理由は以前私が信頼する造形師の方がこのOSを推していたのでちょっと触ってみたかった感じです。まあ今回サーバー用途なのでほぼGUIで遊ぶ予定はないのですが。

しばらくアプデがないですが、system76自体は活動しているようなので今年はubuntu 24ベースのアップデートもあるでしょうと期待を込めて・・・。

なぜDocker Desktopか

linuxなのでCUIベースでええやん、みたいなところもあるかもですが、リソース管理周りの設定とかイメージやコンテナのゴミ管理に私はだいぶ不安がある為いざとなったらGUIで確認できるDocker Desktopを使いたかった感じです。
あと、DockerとDocker composeあたりをオールインワンで管理できるって心が楽だよね。

インストール手順

システム要件の確認

システム要件の確認

まずシステム要件を確認します。

参考:https://docs.docker.com/desktop/install/linux-install/#system-requirements

↓参考ページを機械翻訳にかけてます。

仮想化のための 64 ビット カーネルと CPU のサポート

今回使うミニPCに搭載されたN100プロセッサ+POP!_OSは64ビット対応なので問題ありません。

KVM 仮想化サポート

POP!_OSではデフォルトでKVMが有効になっていました。

QEMU はバージョン 5.2 以降である必要があります

QEMUはインストールされていなかったので今回インストールします。

systemd initシステム

POP!_OSではデフォルトで使用されているようです。

Gnome、KDE、または MATE デスクトップ環境
多くの Linux ディストリビューションでは、Gnome 環境はトレイ アイコンをサポートしていません。トレイ アイコンのサポートを追加するには、Gnome 拡張機能をインストールする必要があります。たとえば、 AppIndicator

POP!_OSはGnomeデスクトップ環境です。
トレイアイコン云云はあまりよくわかっていないのですが今回対応していません。

少なくとも 4 GB の RAM

今回のマシンでは少なくとも足りていそうです。

ユーザー名前空間での ID マッピングの構成を有効にします
参考:https://docs.docker.com/desktop/faqs/linuxfaqs/#how-do-i-enable-file-sharing

これちょっと面倒だったので今回対応飛ばしてしまいました。
ホストマシンとコンテナでファイルシステムのやり取りを安全に行う為の設定という理解。とりあえず飛ばしてもインストールはできるので後で対応します。

推奨: 資格情報管理のためにpassを初期化します

これも対応しなくてもインストールはできるけど、対応しないとDockerアカウントへのログインができないです。必要であればこのあたりを参考に対応します。

以上、一旦QEMUのインストールの対応が必要になります。

QEMUのインストール

QEMUって何よという話なのですが、ホストマシン上でCPUのエミュレーションを行う為の仮想化ソフトウェアらしいです。少なくとも私はこのあたりをWindowsやMacで仮想環境を扱っていて意識したことはなかったです。

以下雑にChatGPTに教えてもらったインストール手順なので余計なものをバンドルしちゃってる可能性はあるかもです。

  1. パッケージリストを更新
sudo apt update
  1. QEMUおよび関連するパッケージをインストール
sudo apt install qemu qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
  1. インストールの確認
qemu-system-x86_64 --version

これで前準備は完了。

Docker Desktop for linuxのインストール

Docker公式はPOP!_OSをサポートしていませんが、Ubuntuベースのディストリビューションという事でUbuntuの手順をみながら進めました。
参考:https://docs.docker.com/desktop/install/ubuntu/

ここまで来たらあと少し!

Dockerのパッケージリポジトリをセットアップする

参考:https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

参考ページのステップ1をそのまま実行して問題ないです。

# 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 "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

最新のDEBパッケージをダウンロードする

このページにある「DEB package」というリンクからダウンロードできます。

ダウンロードしたDEBパッケージをインストールする

私の環境の場合、ブラウザでダウンロードしたファイルはDonwnloadディレクトリに置かれるので以下のようになります。パスとファイル名は適宜置き換えてください。

sudo apt-get update
sudo apt-get install ~/Downloads/docker-desktop-4.30.0-amd64.deb

これで言われるがままにインストールが進められるはずです。
インストールが終わるとアプリケーションランチャーにDocker Desktopのアイコンが作成されていました。

ちなみに公式で記述されている以下のエラーは発生しました。私はOSの言語が日本語なので日本語で表示されましたが。無視して良いと書いてあったので無視しました。

N: Download is performed unsandboxed as root, as file '/home/user/Downloads/docker-desktop.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

Docker Desktopを立ち上げてみる

立ち上がるまでが遠足なので・・・。

立ち上げるとDockerアカウントへのログインが促されますが、システム要件の前提にあった資格情報の初期化を行っていないとボタン(リンク)をクリックしてもひたすら無反応です。最初ちょっと焦りました。
初期化を行うか、ログインをスキップすれば何事もなく使えます。私の利用用途だとログインしなくてもまったく困りませんが、延々とエラーログが出続けるので一応初期化の対応をしてDockerアカウントへログインしました。

あとは当初の目的だった設定周りを整えてDockerライフを楽しんでください。

以上、ここまで読んで頂きありがとうございました!
細かいところをすっ飛ばしてしまった感じもあるので、ツッコミコメントで頂ければ喜びます!

Discussion