こんにちは、てつです!
今日は軽く前回OSのインストールまで終わったサーバーにDockerを入れていこうかなと思います!
前回の記事はこれです。

少し前にメインで扱ってたASUSの方で、Dockerの導入とかはやったんですけど、備忘録的な感じで書き留めていこうかなと思った次第です。
以下の記事がその記事となります。

必要なツール類のダウンロード
とりあえず、Dockerのインストールからやっていきます。
以下のコマンドを実行します。
#Bash
sudo apt update
sudo apt install -y ca-certificates curl gnupg
それぞれのコマンドの意味はこんな感じです。
・ca-certificates:接続先のWebサイトが詐欺サイトではなく「本物のDocker公式サイトであること」を証明するための電子証明書です。
・curl:ブラウザを使わずに、コマンド画面から直接インターネット上のファイルをダウンロードするツールです。
・gnupg:このあと登場する「暗号鍵(GPG鍵)」を検証・管理するためのツールです
何をやってたかというと、Dockerをダウンロードする前に、インターネットと安全に通信するための「道具」を3つ用意したって感じですね。
問題なく実行できたので次に移ります。
Docker公式の「鍵(GPG)」を登録
Docker公式が配っている「本物の証明となるハンコ(暗号鍵)」をダウンロードして、Ubuntuの中に保管していきます。
以下のコマンドを実行します。
#Bash
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
なんでこの手順を踏むかというと、インターネットからプログラムをダウンロードするとき、途中で「ウイルス入りの偽物」にすり替えられるリスクがあるんですよね。
なので事前に、この「公式の鍵」をUbuntuに登録しておくことで、このあとダウンロードするDockerのプログラムが「間違いなく公式が作った本物であること」をOSが自動で検証(サインチェック)できるようにしてます。
リポジトリの登録
以下のコマンドをすべてコピーしてBashに張り付けて実行します。
#Bash
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
このコマンドは、非常に長くて複雑に見えますが、やっていることはシンプルです。
結果的にはこんな感じの設定ファイルが保存されています。
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable
確認したいときはこのコマンドを実行します。
cat /etc/apt/sources.list.d/docker.list
補足
上述した設定ファイルは、「プログラムのアップデートがうまくいかない」「新しい外部ツールを追加したい」「不要になったツールをきれいに削除したい」という場面に直面したときに必要になります。
それについて少し補足を書き残しておくので、興味のない方はスキップしてください。
Dockerを完全に削除(アンインストール)したくなったとき
将来、サーバーからDockerを完全に消し去りたくなった場合、プログラム本体を消すだけでなく、この /etc/apt/sources.list.d/docker.list を削除しないと、Ubuntuはいつまでも「Dockerの公式ストアにアップデートがないか確認しに行こう」としてエラーを出してしまいます。
場所を知っていれば、ファイルごとゴミ箱に捨てる(rm コマンドで消す)だけで一発で整理できます。
有名ツール(Node.js、VSCode、Kubernetesなど)を入れるとき
Docker以外の高度なツールをUbuntuに直接入れたくなったとき、全く同じように「/etc/apt/sources.list.d/ の中に新しい設定ファイルを作る」という作業を行うことになります。
「あ、あの時Dockerでやったやつと同じ仕組みだな」と理解できていると、新しいツールの導入も一瞬で理解できるようになるかなとおもいます。
Docker本体とComposeの一括インストール
上述した作業で、準備がすべて整ったので、リポジトリの情報を読み込み直し(apt update)、Dockerに必要な中身を丸ごとインストールしていきます。
下記コマンドを実行します。
#Bash
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
エラーも吐かず、実行できたので最終確認をしていきます。
儀式コマンドを打ちます。
sudo docker run hello-world

画像内のログを少しだけ解説すると:
Unable to find image...locally: 「自分のPC内(ローカル)にhello-worldの型がないなぁ」と探しています。Pulling from library/hello-world: 「よし、インターネット上の倉庫(Docker Hub)からダウンロード(Pull)してこよう」と動いています。
動作してるので導入成功です。
まとめ
ここまで見てくださり、ありがとうございました。
今回の導入の流れは、Linuxで公式以外の外部ツールを安全に導入するときの「鉄板パターン」になります。
- 道具を揃えて(①)
- 偽物を掴まされないように偽造防止の鍵を登録し(②)
- 公式ショップの場所を登録して(③)
- 最後に一気に購入(インストール)する(④)
「ダウンロード元(サプライチェーン)の安全性をOSレベルで厳重に確認しながらインストールしている」という流れですね。
個人レベルでここまでする必要があるかといえば分かりませんが、念には念を入れよというので今回はやってみました。
ご参考にしていただければ幸いです。あと未来の自分もこれを見て思い出してくれればと思いますね。
ではでは、今回はここまで。次回もよろしくお願いします。


コメント