手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Docker Engine の導入 – Ubuntu 標準パッケージでコンテナ実行環境を構築する

Ubuntu 22.04 では、Ubuntu 標準リポジトリの docker.io パッケージから Docker Engine を導入できます。最新の Docker 公式パッケージを追う構成ではなく、既存の Ubuntu 22.04 サーバーを保守する前提では、配布元を Ubuntu 側に寄せる方が扱いやすい場合があります。

この記事では、Ubuntu 標準パッケージを使って Docker Engine を導入し、サービス状態、一般ユーザー権限、bridge アドレス指定、基本的な動作確認までを確認します。

関連する記事
この記事で確認すること
  • Ubuntu 標準パッケージで Docker Engine を導入する範囲
  • docker.io と関連パッケージの導入
  • docker.service の状態確認
  • 一般ユーザーで docker を使うための権限確認
  • daemon.json で bridge アドレスを指定する例
参考
書籍
参考書籍

Kubernetes完全ガイド 第2版

コンテナ基盤の周辺知識を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

Docker Engine の導入方針

ここでは Ubuntu 22.04 の標準パッケージである docker.io を使います。Docker 公式リポジトリを追加する方法もありますが、既存環境の保守では、パッケージ更新経路を増やさないことを優先する判断もあります。

方式特徴向いている場面
Ubuntu 標準パッケージUbuntu の更新経路で管理する安定運用、既存サーバーの保守
Docker 公式パッケージDocker 側の新しい版を追いやすい新機能や特定バージョンが必要な環境

Ubuntu 標準パッケージを使う理由

Ubuntu 標準パッケージを使う場合、APT の管理対象を Ubuntu のリポジトリに寄せられます。検証済みの既存サーバーでは、導入元を増やさないことが変更範囲の抑制につながります。

  • 追加リポジトリを設定せずに導入できる
  • Ubuntu の通常の更新手順に含めやすい
  • 既存の保守手順と合わせやすい
  • 新機能よりも安定した保守を優先しやすい

パッケージをインストールする

docker.io と、Dockerfile の build に使う docker-buildx、Compose v2 互換の docker-compose を導入します。環境によっては docker-compose が旧系のコマンドとして提供されるため、実際に使う前にバージョンを確認します。

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y docker.io docker-buildx docker-compose
docker --version
docker compose version
docker-compose --version

サービス状態を確認する

パッケージ導入後、docker.service が起動しているか確認します。Docker CLI だけでなく、systemd の unit 状態も見ておくと、障害時に切り分けやすくなります。

systemctl status docker.service --no-pager
systemctl is-enabled docker.service
docker info

一般ユーザーで docker を使う

一般ユーザーから docker コマンドを実行する場合は、そのユーザーを docker グループへ追加します。docker グループの権限は強いため、対象ユーザーを限定します。

sudo usermod -aG docker "$USER"
id
newgrp docker
docker ps

daemon.json で bridge アドレスを指定する

ホスト側のネットワークと Docker の標準 bridge が重なる場合は、/etc/docker/daemon.json で bridge アドレスを指定します。既存環境では、先に使用中のネットワーク帯と重複しないことを確認します。

ip route
sudo install -d -m 0755 /etc/docker
sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
  "bip": "10.32.0.1/24",
  "ipv6": true,
  "fixed-cidr-v6": "fd00:10:32::/120"
}
EOF
sudo cat /etc/docker/daemon.json

設定を反映する

daemon.json を変更した後は Docker daemon を再起動します。稼働中のコンテナがある場合は影響が出るため、保守時間帯に実施します。

sudo systemctl restart docker.service
systemctl status docker.service --no-pager
docker network inspect bridge

動作確認をする

導入後は、実際にコンテナを起動して Docker Engine が動作することを確認します。既存サーバーでは、外部から image を取得する通信経路も確認対象です。

docker run --rm hello-world
docker run --rm ubuntu:22.04 cat /etc/os-release
docker ps -a

運用時に見るポイント

Docker Engine 導入後は、パッケージの更新経路、daemon 設定、ユーザー権限、コンテナのデータ置き場を分けて確認します。導入直後にすべてを変更せず、必要な設定だけを加える方が後から追跡しやすくなります。

  • apt policy docker.io で導入元と候補バージョンを確認する
  • systemctl status docker.service で daemon の状態を見る
  • /etc/docker/daemon.json は変更理由を残して管理する
  • docker グループへ追加するユーザーを限定する
  • volume や bind mount は別記事の手順で確認する
apt policy docker.io
systemctl status docker.service --no-pager
docker version
docker info

まとめ

Ubuntu 22.04 で Docker Engine を導入する場合、Ubuntu 標準パッケージの docker.io を使うと、追加リポジトリなしでコンテナ実行環境を構築できます。既存環境の保守では、導入元を増やさないことが利点になります。

導入後は、サービス状態、一般ユーザー権限、bridge アドレス、image 取得の通信経路を確認します。基本操作やデータ永続化は、別記事で段階的に確認します。

関連する記事
Ubuntu 22.04 Docker Engine の導入 – Ubuntu 標準パッケージでコンテナ実行環境を構築する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る