この記事のポイント
- 2026年6月時点の Ubuntu DevOps スタック構成を、実際にツールを動かした一次データで解説します
docker.io 29.1.3・kubectl v1.36.2・Helm v4.2.1・k3s v1.36.1+k3s1・Trivy v0.71.0のバージョンを公式ソースとUbuntu 24.04コンテナで実確認しました- Trivy で実際にスキャンしたところ、
nginx:latestは HIGH+CRITICAL が35件、ubuntu:24.04はわずか1件でした - Grafana 13.0.2 を Docker で実際に起動し、ログイン画面・ホーム・データソース追加画面を撮影しています
- 初学者が「まず動かせる」最小構成から、本番レベルへ段階的にスケールできる設計で紹介します
「DevOps って何から手を付ければいいの?」——これは、自宅サーバーやVPSを借りてアプリをデプロイしようとした瞬間に多くの人がぶつかる壁です。CI/CD、Kubernetes、Prometheus、Trivy……ツール名だけ聞いても全体像が見えないまま時間が過ぎていきます。
この記事では、Ubuntu 24.04 LTS をベースにした2026年現在の DevOps スタックを実際に動かして、各ツールの役割・最新バージョン・最小構成を解説します。バージョンは公式の一次ソース(dl.k8s.io や GitHub Releases)から取得し、コマンドはすべて ubuntu:24.04 公式Dockerイメージ内で実行した実出力を載せています。
動作確認済み環境
OS: Ubuntu 24.04.4 LTS(公式イメージ ubuntu:24.04・aarch64・kernel 5.10.76-linuxkit で検証)
Docker (docker.io): 29.1.3-0ubuntu3~24.04.2
containerd: 2.2.1 / docker-compose-v2: 2.40.3
kubectl: v1.36.2(Kubernetes安定版)/ k3s: v1.36.1+k3s1
Helm: v4.2.1 / Trivy: v0.71.0 / Grafana: 13.0.2
検証日: 2026年6月15日

Ubuntu DevOps スタック 2026 の全体像
最初に「どのツールが何をするのか」を整理しておきます。DevOps のツールは大きく4つの役割に分かれます。
- コンテナ実行:Docker・containerd でアプリをパッケージ化して動かす
- CI/CD:コードプッシュ → テスト → ビルド → デプロイを自動化する
- オーケストレーション:Kubernetes / K3s で複数コンテナを管理・スケールする
- 監視・セキュリティ:Prometheus + Grafana でメトリクスを可視化し、Trivy で脆弱性を管理する

2026年6月時点で各ツールの最新版を一次ソースから取得したところ、kubectl は v1.36.2 が安定版(dl.k8s.io/release/stable.txt)、Helm は v4 系の v4.2.1、軽量Kubernetesの K3s は v1.36.1+k3s1 でした。セキュリティスキャンの Trivy は v0.71.0 が最新で、コンテナイメージだけでなく Dockerfile や Helm chart などの IaC スキャンにも対応しています。GitHub Actions が CI/CD の事実上の標準である点も変わっていません。
ステップ1:Docker を Ubuntu 24.04 に導入する
まず土台となる Docker をインストールします。Ubuntu 24.04 では apt で docker.io パッケージが取得できます。
①パッケージを更新してDockerを確認する
docker.io:
Candidate: 29.1.3-0ubuntu3~24.04.2
Version table:
29.1.3-0ubuntu3~24.04.2 500 (noble-updates/universe)
$ sudo apt-get update && sudo apt-get install -y docker.io
Setting up docker.io (29.1.3-0ubuntu3~24.04.2) …
$ sudo systemctl enable –now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service
上記の apt-cache policy docker.io は ubuntu:24.04 コンテナ内で実際に実行した出力です。Candidate が 29.1.3-0ubuntu3~24.04.2 であることを確認できました。あわせて containerd 2.2.1 と docker-compose-v2 2.40.3 も noble-updates から入ります。正直、以前は Docker 公式リポジトリを手動で追加する必要がありましたが、Ubuntu 24.04 では apt install docker.io だけで最新に近いバージョンが入るようになりました。
②自分のユーザーをdockerグループに追加する
$ newgrp docker
$ docker run –rm hello-world
Hello from Docker!
注意
usermod の変更は再ログイン後に反映されます。newgrp docker で一時的に適用するか、一度ログアウト・ログインしてから確認してください。ここを飛ばすと次の docker ps で permission denied になりがちです。
ステップ2:CI/CDの核 — GitHub Actions を理解する
GitHub Actions は、リポジトリに .github/workflows/ ディレクトリを作り、YAML ファイルを置くだけで CI/CD パイプラインが動きます。インフラの準備が不要なので、個人開発や小規模プロジェクトに最も向いています。
①基本的なワークフローファイル
on:
push:
branches: [main]
jobs:
build-and-scan:
runs-on: ubuntu-latest
steps:
– uses: actions/checkout@v4
– name: Build Docker image
run: docker build -t myapp:${{ github.sha }} .
– name: Run Trivy scan
uses: aquasecurity/trivy-action@master
with:
image-ref: ‘myapp:${{ github.sha }}’
severity: ‘CRITICAL’
exit-code: ‘1’ # CRITICALがあればパイプライン停止
ここで重要なのは exit-code: '1' の部分です。Trivy で CRITICAL 脆弱性が検出された場合に自動でパイプラインを止められるので、セキュリティ問題が本番に混入するリスクを大きく下げられます。実際にどれくらい検出されるのかは、後ほどステップ5で実スキャンの結果をお見せします。
②SSH鍵でセルフホストrunnerと接続する
VPS 上に self-hosted runner を置く場合、SSH 鍵での接続が必要です。Ubuntu 24.04 標準の OpenSSH で Ed25519 鍵を生成した実出力が以下です。SSH(暗号化された安全なリモート接続の仕組み)の鍵認証は、パスワードより安全な方式です。

OpenSSH_9.6p1 Ubuntu-3ubuntu13.16, OpenSSL 3.0.13 30 Jan 2024
$ ssh-keygen -t ed25519 -C ‘runner@vps-tokyo-2026’ -f ~/.ssh/gh_actions -N ”
Generating public/private ed25519 key pair.
Your public key has been saved in ~/.ssh/gh_actions.pub
The key fingerprint is:
SHA256:6LIEssCNNLPS+YlZHUGqCWNm06RE+7yfpKgBhZguif0 runner@vps-tokyo-2026
生成した公開鍵(.pub)を GitHub の Deploy Keys または Secrets に登録し、秘密鍵はサーバーの ~/.ssh/ に保存します。Ubuntu 24.04 標準の OpenSSH_9.6p1 は RSA より強固で軽量な Ed25519 を推奨しているので、新規作成は必ず -t ed25519 を指定しましょう。上のフィンガープリント SHA256:6LIE… は今回実際に生成された鍵のものです。
ステップ3:Kubernetes / K3s でコンテナを管理する
1台の VPS でコンテナ管理を始めるなら、軽量Kubernetesの K3s が最も簡単です。フルの Kubernetes(kubectl v1.36.2 が安定版)はクラスタ構成に向いていますが、K3s は VPS 1台からでも動かせます。
①K3s の最小インストール
[INFO] Finding release for channel stable
[INFO] Using v1.36.1+k3s1 as release
[INFO] systemd: Starting k3s
$ sudo k3s kubectl get nodes
NAME STATUS ROLES AGE VERSION
vps-01 Ready control-plane,master 30s v1.36.1+k3s1
スクリプト1行でインストールが完了します。K3s の最新安定版が v1.36.1+k3s1(2026年5月リリース)であることは GitHub Releases で実確認しました。K3s は内部で containerd を使うため docker コマンドとは別物ですが、kubectl の使い方はフルの Kubernetes と同じです。
②Helm でアプリをデプロイする
Helm v4.2.1(2026年6月12日リリースの最新)を使うとアプリを「パッケージ」として管理できます。
Downloading https://get.helm.sh/helm-v4.2.1-linux-amd64.tar.gz
helm installed into /usr/local/bin/helm
$ helm version
version.BuildInfo{Version:”v4.2.1″, …}
障害が起きたときも helm rollback で素早く前のバージョンに戻せるのが Helm の強みです。
ステップ4:Prometheus + Grafana で監視基盤を作る
Docker Compose を使った Prometheus + Grafana の最小構成は、初学者が最初に監視を体験するのに最適です。Prometheus はメトリクスを収集するデータベース、Grafana はそれをグラフで可視化するWebダッシュボードです。実際に Grafana 13.0.2 を Docker で起動して画面を撮影しました。

①Docker Composeファイルを作る
services:
prometheus:
image: prom/prometheus:latest
ports: [“9090:9090”]
volumes:
– ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana:latest
ports: [“3000:3000”]
environment:
– GF_SECURITY_ADMIN_PASSWORD=your_password
volumes:
– grafana_data:/var/lib/grafana
volumes:
grafana_data:
✔ Container monitoring-prometheus-1 Started
✔ Container monitoring-grafana-1 Started
$ docker compose ps
monitoring-prometheus-1 Up(ポート 9090)
monitoring-grafana-1 Up(ポート 3000)
ブラウザで http://<VPS-IP>:3000 にアクセスすると、上のような Grafana のログイン画面が表示されます。今回 grafana/grafana:latest を起動したところ バージョンは 13.0.2 でした。デフォルトの管理者ユーザーは admin です。ログインすると下のようなホーム画面が出ます。

②データソースにPrometheusを追加する
左メニューの「Connections → Data sources → Add data source」を開くと、追加できるデータソースの一覧が表示されます。実際の画面が以下です。Prometheus・Graphite・InfluxDB・OpenTSDB・Loki などが並んでいるのが分かります。ここで Prometheus を選び、URL に http://prometheus:9090 を設定するだけで連携できます。

実際に Grafana を Docker で起動してみると、ログイン画面からデータソース追加まで 数分で構築できました。コマンドだけだと身構えてしまう監視基盤も、画面を見ながら進められると一気にハードルが下がります。
③Prometheus のスクレイプ設定
scrape_interval: 15s
scrape_configs:
– job_name: ‘prometheus’
static_configs:
– targets: [‘localhost:9090’]
– job_name: ‘node-exporter’
static_configs:
– targets: [‘node-exporter:9100’]
node-exporter を追加すると、CPU・メモリ・ディスク・ネットワーク等のサーバーメトリクスが自動で収集され、Grafana で可視化できます。
ステップ5:セキュリティスキャン(Trivy)を実際に走らせる
Trivy v0.71.0 はコンテナイメージのスキャンが最も簡単な使い方です。ここでは机上の説明ではなく、実際に Trivy を Docker で動かして本物のイメージをスキャンしました。nginx:latest と公式 ubuntu:24.04 を同じ日にスキャンした結果を比べてみます。

aquasec/trivy:latest image –severity HIGH,CRITICAL nginx:latest
nginx:latest (debian 13.x)
Total: 35 (HIGH: 33, CRITICAL: 2)
curl 8.14.1-2+deb13u3 CVE-2026-5773 / CVE-2026-6276 HIGH
$ trivy image –severity HIGH,CRITICAL ubuntu:24.04
ubuntu:24.04 (ubuntu 24.04)
Total: 1 (HIGH: 1, CRITICAL: 0)
libssl3t64 3.0.13-0ubuntu3.9 CVE-2026-45447 HIGH → fixed in 3.0.13-0ubuntu3.11
結果は驚くほど差が出ました。nginx:latest は HIGH+CRITICAL が合計35件(CRITICAL 2件・HIGH 33件)あったのに対し、公式 ubuntu:24.04 は HIGH がたった1件、CRITICAL はゼロでした。しかもその1件(libssl3t64 の CVE-2026-45447)は 3.0.13-0ubuntu3.11 で修正済みなので、apt upgrade 一発で解消できます。土台を最小の公式イメージにして必要なものだけ足す方が、脆弱性は圧倒的に少なくなる——これは数字を見て初めて腹落ちする部分です。
注意
上記の件数・CVE番号は2026年6月15日時点の Trivy 最新データベースに基づく実測結果です。Trivy は毎日データベースを更新するため、同じイメージでもスキャン日によって結果が変わります。最新の状態は必ず手元で trivy image を実行して確認してください。
ステップ6:CI/CDパイプラインの全体像を確認する

ここまで紹介した各ツールの連携を整理すると、上のフロー図のようになります。コードを git push したら GitHub Actions が自動で起動し、Docker ビルド → Trivy スキャン → K3s/K8s デプロイまで自動で流れます。本番環境では Prometheus が常時メトリクスを収集し、Grafana でダッシュボードを確認できる状態を維持します。
ここで Trivy の CRITICAL 検出でパイプラインを止める設定が効いてきます。先ほどの実スキャンのように、うっかり脆弱なイメージを本番に出す事故を、人間がレビューする前の段階で機械的に防げます。
サーバーのパフォーマンスを測る(sysbench実測)
DevOps スタックを動かすサーバーのスペックは重要です。sysbench で CPU ベンチを取る方法を紹介します。ubuntu:24.04 コンテナ内で実際に3回計測した結果も示します。

Setting up sysbench (1.0.20+ds-6build2) …
$ sysbench cpu –threads=2 –time=10 run
CPU speed:
events per second: 12,015.6(3回平均 / min 10,158 〜 max 13,246)
General statistics:
total time: 10.0019s
上記は macOS 上の Docker コンテナ(aarch64)での計測値で、3回の events/sec は 13,246 → 12,643 → 10,158 と変動し、平均は 12,016 events/sec でした。あわせて dd によるディスクI/Oも計測したところ、書き込み 788 MB/s・読み込み 1.2 GB/s でした。VPS では環境・プランによって大きく変わるので、契約後はまず手元で同じコマンドを回して基準値を取っておくのがおすすめです。

DevOps スタック(Grafana + Prometheus + K3s)を1台の VPS で動かすなら、最低でも 2vCPU / 2GB RAM のプランを選ぶことをおすすめします。Vultr 公式API(/v2/plans)で東京リージョンの料金を実取得したところ、2vCPU/2GB の vc2-2c-2gb が月額 $15、お試しの 1vCPU/1GB は $5 から始められることが分かりました。
よくある詰まりポイントと解決策
①docker: permission denied
docker コマンドで permission denied while trying to connect to the Docker daemon socket が出る場合、ユーザーが docker グループに追加されていません。
permission denied while trying to connect to the Docker daemon socket…
$ sudo usermod -aG docker $USER && newgrp docker
$ docker ps # 今度は動く
CONTAINER ID IMAGE COMMAND CREATED STATUS
②K3s が起動しない(ポート競合)
K3s は 6443(API server)・10250(kubelet)・2379(etcd)を使います。すでに別サービスが使っている場合は、ss -tlnp | grep -E '6443|10250' で確認してください。
③Grafana に接続できない
UFW などのファイアウォールが有効な場合、ポート 3000 を開ける必要があります。UFW は Ubuntu 標準の簡易ファイアウォール設定ツールです。
$ sudo ufw allow 9090/tcp # Prometheus
Rule added
# 本番ではIP制限を付けること: ufw allow from <your-ip> to any port 3000
セキュリティの注意
Grafana・Prometheus のポートをインターネットに直接公開するのは避けてください。Nginx などのリバースプロキシを前段に置き、HTTPS + 認証を必ず設定しましょう。なお Grafana の初期パスワードは必ず変更してください。
まとめ
Ubuntu 24.04 LTS ベースの DevOps スタック 2026 を、実測ベースで整理しました。
- docker.io 29.1.3 は
apt install docker.io一発で入る(Ubuntu 24.04 noble-updates で実確認) - GitHub Actions が CI/CD の主流。YAML 数行でビルド → Trivy スキャン → デプロイが自動化できる
- kubectl v1.36.2 がKubernetes安定版。VPS 1台なら k3s v1.36.1+k3s1 が最も簡単に始められる
- Helm v4.2.1 でアプリをパッケージ管理。helm rollback で障害時も素早く戻せる
- Trivy v0.71.0 の実スキャンでは nginx:latest が35件、ubuntu:24.04 は1件。土台を最小の公式イメージにするのが効く
- Prometheus + Grafana 13.0.2 が監視の定番。Docker Compose と画面操作で短時間に構築できる
本格的にVPSでこのスタックを動かしたい方は、まず 2vCPU / 2GB RAM 以上のプランを選ぶことをおすすめします。Vultr の東京リージョンなら日本からの遅延も小さく、初心者でも使いやすい管理画面が整っています。
VPS各社のベンチマーク比較は もあわせてご覧ください。


コメント