コンテナを使いたいとき、おそらく第一選択にあがるのがDockerです。自分もLinuxを勉強する過程でサーバーをコンテナ環境で立ち上げたりすることが増えてきたので、Dockerのインストール方法をまとめておこうと思います。
Dockerのインストール(Ubuntu公式aptリポジトリ方式)
インストール対象はUbuntuServerです。Dockerの動作を確認するところまでの工程です。
Dockerのインストール方法はいくつかありますが、ここではリポジトリを追加してそこからパッケージをインストールする方法でインストールを行います。
公式のドキュメント等も参考にしてください。

既存Dockerの削除(存在する場合のみ)
sudo apt-get remove -y docker docker-engine docker.io containerd runc古いDockerパッケージが残っていると競合するため、念のため削除します。ないことが分かり切ってる場合は、このコマンドを実行する必要はありません。
必要パッケージのインストール
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupgDocker公式リポジトリを追加するために必要なパッケージです。
ca-certificates、gnuupgは認証で使用するパッケージ、curlはHTTPリクエストを送るツールです。今回は認証関係で必要な物をダウンロードするなどで使います。
GPGキー保存用ディレクトリ作成
sudo install -m 0755 -d /etc/apt/keyringsDocker公式GPGキーを格納するディレクトリを作成します。
Docker公式GPGキーの取得
curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgAPTがDocker公式パッケージを信頼できるようにするための署名鍵をダウンロードし、先ほど作ったディレクトリに格納します。これでリポジトリ追加のための認証の用意が整います。
念のため権限を設定しておきます。
sudo chmod a+r /etc/apt/keyrings/docker.gpgDocker公式リポジトリの追加
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
$(. /etc/os-release && echo ${UBUNTU_CODENAME}) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullUbuntuのコードネーム(jammy等)を自動取得してリポジトリを登録します。少し複雑なコマンドなので間違えないようにします。
やっていることは、リポジトリをリストに追加することなので、手動での書き込みでもいいと思います。
Docker Engineのインストール
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginDockerと周辺ツールをインストールします。すべてが必要なわけではありませんが、後々必要になってくるものもあるので、インストールしておくと便利です。
インストールされる主な構成:
- docker-ce:Docker Engine本体
- docker-ce-cli:dockerコマンド
- containerd.io:コンテナランタイム
- docker-buildx-plugin:拡張ビルド機能
- docker-compose-plugin:compose機能
動作確認
sudo docker run --rm hello-worldテスト用のコンテナであるhello-worldコンテナを起動します。
コンテナは既存のモノを使う場合、DokcerHubという公式のコンテナ置き場からダウンロードしてくる形になりますが、docker runコマンドでは、ローカルにhello-worldコンテナがなければ、自動的にダウンロードして実行することになります。
以下のような感じで”Hello from Docker!” が表示されれば正常にコンテナが起動しています。
Hello from Docker!
This message shows that your installation appears to be working correctly.sudoなしでdockerを扱う(任意)
Dockerを扱うとき、いちいちsudoでパスワードを打つのは面倒なので、sudoなしでDockerを扱えるように、グループへ追加しておくと便利です。
sudo usermod -aG docker $USER
newgrp dockerコンテナの状態を確認する
コンテナが稼働しているかの確認です。先ほどのhello-worldコンテナは-rmオプションを付けて起動したので、起動後にすぐコンテナが終了するため、psで確認できません。
#起動中のコンテナの表示
docker ps
#停止したコンテナも含めた表示
docker ps -a下記は、nginxをコンテナとして起動している状態でのdocker psの表示です。

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a24b230ab00 nginx:stable-alpine "/docker-entrypoint.…" 21 hours ago Up 21 hours 0.0.0.0:80->80/tcp, [::]:80->80/tcp nginxコンテナを停止する
コンテナを停止するときは、コンテナ名かコンテナIDを指定して停止します。
docker stop <コンテナ名 or コンテナID>上記のnginxのコンテナだと
docker stop 9a24b230ab00で停止することができます。
まとめ
Dockerのインストールから起動確認までの工程をまとめてみました。
Linuxでいろんなことをやろうとするとコンテナを使うと便利なんですよね。いろんな環境でDockerのインストールをすることになるかもしれませんので、一連の工程はできる限り覚えておきたいです。


コメント