2
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?

WSL2のUbuntuにDockerをインストールする方法のコマンド理解

Last updated at Posted at 2024-11-20

WSL2のUbuntuにDockerをインストールしたい時に以下の記事にヒットした。

問題なくインストールまでできたがコマンドの理解がついていっていないので理解を深めるために各コマンドが何をしているのかを確認する。

sudo apt-get update

サーバーからパッケージ・リストを入手する

なぜ実行前にパッケージ・リストを入手するのかについては該当する情報が得られなかった。
そのためGeminiで質問をしその回答を添付した。
(この内容の正確性については確証が持てないため、誤りがあれば資料を提示の上ご指摘いただけると幸いです。)
image.png

sudo apt-get install ca-certificates curl

ca-certificatesについて

Enterprise environments sometimes have a local Certificate Authority (CA) that issues certificates for use within the organisation. For an Ubuntu server to be functional, and to trust the hosts in this environment, this CA must be installed in Ubuntu’s trust store.
Certificate formats
There are two encoding formats for certificates:

Privacy Enhanced Mail (PEM): These are human-readable and in Base64-encoded ASCII format.


エンタープライズ環境には、組織内で使用する証明書を発行するローカル証明機関 (CA) が存在する場合があります。Ubuntu サーバーが機能し、この環境のホストを信頼するには、この CA を Ubuntu の信頼ストアにインストールする必要があります。
証明書の形式
証明書には 2 つのエンコード形式があります。
Privacy Enhanced Mail (PEM): 人間が判読できる Base64 エンコード ASCII 形式です。

つまりca-certificatesは必要な証明書をインストールするためのコマンドでありこれを行うことでローカルサイトに接続が可能となる

curlについて

curl(Client URL)は、コマンドラインからHTTPリクエストを送信するためのツールです。

サイトに情報をアクセスするためのコマンド
これで外部のサイトから必要な情報を引き込むことができる

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

install --help
  -D                  create all leading components of DEST except the last,
                        or all components of --target-directory,
                        then copy SOURCE to DEST
      --debug         explain how a file is copied.  Implies -v
  -g, --group=GROUP   set group ownership, instead of process' current group
  -m, --mode=MODE     set permission mode (as in chmod), instead of rwxr-xr-x

読み込み書き込み権限を入れつつ/etc/apt/keyringsにデータを移動させている。

必要な理由についてはGenimiでの回答が以下となる。
image.png

sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

curlコマンドにてdockerのダウンロードを行う。
なおそれぞれのオプションの意味は以下
image.png

なお-oから出力ファイルを指定するオプションとなっており、/etc/apt/keyrings/docker.ascというファイルへ保存する。

sudo chmod a+r /etc/apt/keyrings/docker.asc

chmodコマンドを利用してアクセス制御を設定する。
オプションについてはaでユーザー、グループ、他のすべてのユーザーを示し、rで読み取り許可を行う。

image.png

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

コマンドだけでは意図がつかみきれなかったのでgeminiで質問をしています。

Dockerの公式リポジトリをUbuntuのパッケージ管理システムであるaptのソースリストに追加するためのコマンドです。

image.png

echoコマンドで文字列の作成、ファイルへの追記はパイプコマンドを経由してteeコマンドでファイルへの追記を行っています。

/dev/nullは標準出力が破棄され、ターミナルには何も表示されない状態となります。

image.png

sudo apt-get update

変更内容を再度更新することで依存関係などを整理します。

最後に
コマンド単体だと何をどう動かしたかや行ったかは追えますがその背景となるファイルの構造やファイルの中身については追い切れてない印象です。
それが理解の妨げとなりただコマンドを叩いているだけになっていたので今回どのコマンドが何をしているのかを正確に追うためこの記事を書きました。

なお執筆者に基礎的な知識が不足しているためどのファイルでどの処理を行っているかの理解が不足しているのは否めませんでした。
そのためAIによる質問とその回答を載せましたがこれがどれだけ精確な内容であるかは確証が持てずにいます。
これらの内容に関して誤りなどをご指摘をいただけるととても助かります。

ここまで読んでいただきありがとうございました。

2
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
2
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?