手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 Docker の基本設定 – Docker Engine / Compose / IPv6 / プロキシを構成する

関連する記事

Ubuntu 26.04 で Docker を使う場合、Docker Engine だけでなく、Compose plugin、データ保存先、IPv6 bridge、proxy、docker group の扱いを合わせて決めておくと、コンテナ運用の前提がそろいます。

この記事では、Ubuntu package の docker.iodocker-buildxdocker-compose-v2 を使い、/etc/docker/daemon.json と systemd drop-in で Docker daemon を構成する基本をまとめます。

この記事で扱うこと
  • Docker Engine / Buildx / Compose v2 の導入
  • 管理ユーザーの docker group 追加
  • /etc/docker/daemon.json の設定
  • IPv6 bridge と fixed-cidr-v6
  • systemd drop-in による proxy 設定
対象 OSUbuntu 26.04 Server
packagesdocker.iodocker-buildxdocker-compose-v2
Compose root/opt/docker
daemon config/etc/docker/daemon.json
proxy drop-in/etc/systemd/system/docker.service.d/proxy.conf
参考書籍
参考書籍
Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド
Docker と Kubernetes の運用、セキュリティ、コンテナ基盤の考え方を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

Docker と containerd を分けて考える

Docker Engine はアプリケーションコンテナや Compose 運用で便利です。一方、Kubernetes ノードの CRI runtime としては containerd を直接構成する場合があります。両者を混同せず、用途を分けて設計します。

  • Docker は Compose や単体コンテナ運用で使う
  • Kubernetes 用 runtime は containerd 側で確認する
  • Docker daemon の network と proxy を明示する
  • docker group の権限を理解して付与する

Docker packages をインストールする

Ubuntu package として Docker Engine、Buildx、Compose v2 を導入します。

sudo apt update
sudo apt install -y docker.io docker-buildx docker-compose-v2
docker --version
docker buildx version
docker compose version

docker group を扱う

docker group に入ったユーザーは Docker daemon を通じて強い権限を持ちます。管理ユーザーだけに絞って追加し、反映には再ログインが必要です。

sudo usermod -aG docker myadmin
id myadmin
getent group docker

Compose root を作成する

Compose の定義やデータを置く場所を決めます。ここでは /opt/docker を root として使います。

sudo install -d -o root -g root -m 0755 /opt/docker
ls -ld /opt/docker

daemon.json を構成する

/etc/docker/daemon.json では、data root、IPv6、Docker bridge の IPv4 / IPv6 CIDR を指定します。IPv6 を有効にする場合は fixed-cidr-v6 を必ず設計します。

sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{
  "data-root": "/var/lib/docker",
  "ipv6": true,
  "bip": "172.31.0.1/24",
  "fixed-cidr-v6": "fd00:31::/64"
}
EOF
sudo chown root:root /etc/docker/daemon.json
sudo chmod 0644 /etc/docker/daemon.json

daemon.json を検証する

Docker daemon の設定は、反映前に dockerd --validate で確認します。

sudo dockerd --validate --config-file /etc/docker/daemon.json
sudo systemctl restart docker.service
systemctl status docker.service --no-pager

proxy を systemd drop-in で設定する

proxy 環境で image pull を行う場合は、Docker daemon に proxy 変数を渡します。内部 registry、localhost、内部ドメインは NO_PROXY に入れます。

sudo install -d -o root -g root -m 0755 /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/proxy.conf >/dev/null <<'EOF'
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"
Environment="HTTPS_PROXY=http://proxy.example.com:8080"
Environment="NO_PROXY=localhost,127.0.0.1,::1,.example.com,registry.example.com"
EOF
sudo chown root:root /etc/systemd/system/docker.service.d/proxy.conf
sudo chmod 0644 /etc/systemd/system/docker.service.d/proxy.conf

systemd に反映する

drop-in を変更した場合は daemon reload の後に Docker を再起動します。

sudo systemctl daemon-reload
sudo systemctl restart docker.service
systemctl show docker.service --property=Environment
systemctl status docker.service --no-pager

Docker の動作を確認する

daemon、network、Compose plugin、image pull の確認をします。

docker info
docker network inspect bridge
docker run --rm hello-world
docker compose version

IPv6 bridge を確認する

IPv6 を有効にした場合は、Docker bridge の IPv6 subnet と container 側の address を確認します。

docker network inspect bridge | grep -A8 IPv6
docker run --rm busybox ip -6 address
docker run --rm busybox ip -6 route

確認ポイント

  • docker.iodocker-buildxdocker-compose-v2 を導入している
  • 管理ユーザーだけを docker group に入れている
  • /opt/docker を Compose root として用意している
  • /etc/docker/daemon.jsondockerd --validate で確認している
  • IPv6 有効時に fixed-cidr-v6 を指定している
  • proxy 環境では systemd drop-in を設定している

まとめ

Ubuntu 26.04 の Docker 基本設定では、Docker Engine、Buildx、Compose v2 を導入し、Compose root、daemon config、proxy drop-in、IPv6 bridge を明示して構成します。

特に docker group は強い権限を持つため、追加するユーザーを絞ります。また、Kubernetes 用 runtime としての containerd とは用途を分け、Docker は Compose や単体コンテナ運用の基盤として確認すると混乱しにくくなります。

関連する記事
Ubuntu 26.04 Docker の基本設定 – Docker Engine / Compose / IPv6 / プロキシを構成する

コメントを残す

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

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

トップへ戻る