Ubuntu 26.04 LTSでDockerを入れる方法

投稿者: | 5月 2, 2026
Ubuntu 26. 04 LTSがでて、まだ対応していないかと思ったら、早速Dockerは対応していた。実は、Dockerだけではなく、incusも対応していた。
 
Dockerのインストール
# prerequisites
sudo apt update
sudo apt install -y ca-certificates curl gnupg
 
# keyring
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
 
# repo
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
resolute stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
# install
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
 
 
# Install via script
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
cp ~/.local/bin/lazydocker /usr/local/bin/
curl -L https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -o /usr/local/bin/ctop
chmod +x /usr/local/bin/ctop
 
 
Watchtowerのインストール
 
containrrr/watchtowerは、いつの間にかPublic Archiveになっていたので、nickfedor/watchtowerを使う。(ググると、containrrr/watchtowerばかりなので知らなかった。)
 
watchtower を Docker Compose で常駐させれば、対象コンテナの latest を定期的に pull して、更新があれば再作成をしてくれる。
全コンテナ自動更新ではなく、label (com.centurylinklabs.watchtower.enable: “true”)が付いたものだけ更新 させる。
更新は人知れずやられても困るので、Discordに連絡を入れてもらうようにする。
 
注意点
  • DOCKER_API_VERSION: “1.40”を有効にすると下に合わさってしまうので、コメントアウト。コメントアウトをすれば、1.51で稼働
  • WATCHTOWER_ROLLING_RESTART: “true”だとDependしているcompose.ymlでエラーになってしまうので、コメントアウト
mkdir -p /opt/containers/watchtower
cd /opt/containers/watchtower
 
cat << ‘EOF’ > .env
DISCORD_WEBHOOK=discord://123456789012345678/XXXXXXXXXXXXXXXX
EOF
chmod 600 .env
cat << ‘EOF’ > compose.yml
services:
   watchtower:
    image: nickfedor/watchtower:latest
    container_name: watchtower
  restart: unless-stopped
  volumes:
    – /var/run/docker.sock:/var/run/docker.sock
  environment:
    TZ: Asia/Tokyo
    # DOCKER_API_VERSION: “1.40”
    # Update method
    WATCHTOWER_LABEL_ENABLE: “true”
    # WATCHTOWER_ROLLING_RESTART: “true”
    WATCHTOWER_TIMEOUT: “30s”
    # Schedule
    WATCHTOWER_SCHEDULE: “0 30 4 * * *”
    # Cleanup
    WATCHTOWER_CLEANUP: “true”
    WATCHTOWER_REMOVE_VOLUMES: “false”
    # Notify
    WATCHTOWER_NOTIFICATIONS: shoutrrr
    WATCHTOWER_NOTIFICATION_URL: “${DISCORD_WEBHOOK}”
    WATCHTOWER_NOTIFICATIONS_LEVEL: “info”
    WATCHTOWER_NOTIFICATION_TITLE_TAG: “{{.Hostname}}”
    # Log
    WATCHTOWER_LOG_FORMAT: “json”
    # Stable
    WATCHTOWER_INCLUDE_RESTARTING: “true”
 
    # Enable this only for the first test run.
    # WATCHTOWER_MONITOR_ONLY: “true”
    # WATCHTOWER_DEBUG: “true”
 
  labels:
    com.centurylinklabs.watchtower.enable: “true”
EOF
 
docker compose config | grep WATCHTOWER_NOTIFICATION_URL
docker compose up -d
docker logs -f watchtower
 
 
あっさりできてしまった。

コメントを残す