Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Docker を安全に始めよう ~Docker Hardened Images (DHI) 入門~
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
suzuki
April 22, 2026
Technology
57
0
Share
Docker を安全に始めよう ~Docker Hardened Images (DHI) 入門~
suzuki
April 22, 2026
More Decks by suzuki
See All by suzuki
Docker の AI 新機能を使ってみよう!
atsushi_suzuki
0
76
GPSの仕組み
atsushi_suzuki
0
460
電圧計測の基礎 -ノイズの原因と対策 -
atsushi_suzuki
0
220
自動車の仕組み
atsushi_suzuki
0
160
【論文紹介】TABULAR TRANSFORMERS FOR MODELING MULTIVARIATE TIME SERIES
atsushi_suzuki
0
220
逆求人アプリにUIルールを適用してみよう
atsushi_suzuki
0
260
presentation_ux_社外用_21060901.pdf
atsushi_suzuki
0
300
真っ白な遷移画面をなんとかしたい
atsushi_suzuki
0
310
Noストレスでアプリ開発したい
atsushi_suzuki
0
280
Other Decks in Technology
See All in Technology
イベントストーミングとKiroの仕様駆動開発で実現する要件の認識合わせプロセス
syobochim
7
980
Anthropic AIネイティブ・スタートアップ構築のプレイブック を理解する
nagatsu
0
230
Javaコミュニティをもっと楽しむための9箇条
takasyou
0
720
Kiro CLI v2.0.0がやってきた!
kentapapa
0
230
Java正規表現エンジン(NFA)の仕組みと パフォーマンスを維持するための最適化手法
takeuchi_132917
0
160
string地獄を脱出する
sansantech
PRO
1
110
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
180
「使われるデータ基盤」を目指してデータアナリストとワークショップをやった話
jackojacko_
2
940
Sony_KMP_Journey_KotlinConf2026
sony
0
180
大学生が本気でDatabricksを活用してDiscordサークルをデータ駆動させてみた
phantomjuju
1
300
Spring AI × MCP 入門〜AIエージェントへのツール公開、境界設計から始める最小構成 〜
yuyamiyamoto
0
190
美味しいスイスチーズを作ろう🧀🐭
taigamikami
1
190
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
160
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
850
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
710
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
What's in a price? How to price your products and services
michaelherold
247
13k
Everyday Curiosity
cassininazir
0
220
So, you think you're a good person
axbom
PRO
2
2k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
190
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
230
Bash Introduction
62gerente
615
210k
Transcript
1 Docker を安全に始めよう ~ Docker Hardened Images (DHI) 入門 ~
鈴木 敦 / Atsushi Suzuki
2 鈴木 敦 Atsushi Suzuki LinkedIn Docker Captain AWS Community
Builder Kubestronaut 2020/7 ~ エンジニア人生開始 ~ 2026/3 フロント → AI・インフラ 2026/4 ~ 新天地! かっこよすぎるロゴ 最近なりました それ以前は営業 逆求人、宅配、SaaS 新しいことをやっていきたい
3 発表でお伝えしたいこと Docker をこれから使い始める 業務で試す際のセキュリティも気になる どのイメージを選べばいいか迷っている 何が「安全なイメージ」かわかる 明日から具体的な手順を試す 対象となる方 今日の目標
4 今日お話しすること 1. Docker が選ばれる理由 2. はじめから「安全」に使う理由 3. Docker Hardened
Images(DHI)とは 4. デモ:公式イメージ vs DHI を比較 5. 今日からどう始めるか
5 Docker が選ばれる理由
6 Docker が選ばれる 3 つの理由 環境の再現性: 「自分の PC では動くのに…」がなくなる チームでの統一:全員が同じ環境で開発・テスト・デプロイ
AI 開発との相性:GPU 環境やモデル実行環境をコンテナで配布
7 「動けばいい」で大丈夫? 便利が故に「動けばいい」で済ませがち 業務ではセキュリティの考慮も必要 「とりあえず動く」イメージには不要物が混入している場合も ⇒ 脆弱性の原因 最初から安全な選択をするのが大事
8 はじめから「安全」に使う理由
9 コンテナイメージは「部品」 コンテナイメージはパッケージやライブラリと同じ「部品」 出所不明の部品はサプライチェーン攻撃の入口になりうる FROM のイメージ選択がセキュリティの出発点
10 1 つのコンテナイメージの中には… アプリコード ランタイム(Node.js、Python など) OS パッケージ・共通ライブラリ(数百個) ベース OS(Debian、Alpine
など)= 土台 ベース OS の選択が全体のセキュリティを決める
11 Docker Hardened Images(DHI)とは Docker社が提供するセキュリティ強化済みのイメージ群 CVE(既知の脆弱性)がほぼゼロになるよう継続的にメンテナンス SBOM(部品一覧)や Provenance(ビルド来歴)など、署名付きの証明書が付属 OSS で無料で使える(Apache
2.0 ライセンス) 1000+ イメージから選べる
12 なぜ最初から DHI を選ぶべきか ベースイメージの変更は意外と手間 — 再テスト・再デプロイが必要 最初の FROM で安全なイメージを選んでおくのが一番楽
DHI にはビルド用と実行用があり ⇒ 本番環境には必要最小限だけ入る
13 DHI の制約 = 安全の秘密 特徴 なぜ安全か 実行環境にシェルがない 侵入されても操作できない パッケージ追加ができない
不正なソフトを入れられない 管理者権限がデフォルトで OFF 権限を奪われるリスクが減る
14 デモ
15 デモの全体像 TypeScriptベースの Web サーバーアプリを用意 公式イメージと DHI で同じアプリをビルド FROM 行を変えるだけで何が変わるかを
4 つの観点で比較 # 比較観点 ① Dockerfile の差分 ② イメージサイズ & 脆弱性の数 ③ 証明書の数 ④ シェルの有無
16 デモ① Dockerfile 比較 公式イメージ版と DHI 版の Dockerfile を並べます。 #
公式イメージ版 FROM node:24-trixie-slim AS builder FROM node:24-trixie-slim # DHI 版 FROM dhi.io/node:24-debian13-dev AS builder FROM dhi.io/node:24-debian13 FROM 以外は完全に同じです。
17 デモ② イメージサイズ & 脆弱性の数 # サイズ比較 docker images --format
"table {{.Repository}}\t{{.Tag}}\t{{.Size}}" \ | grep demo # 脆弱性の比較 docker scout compare demo-dhi --to demo-official 「小さい」だけではない 余計なものが少ない → 脆弱性(セキュリティの穴)も少ない
18 デモ③ 証明書の数 # 公式:SBOM とProvenance のみ docker scout attest
list node:24-trixie-slim # DHI :脆弱性スキャンやマルウェアスキャンも含む docker scout attest list dhi.io/node:24-debian13
19 デモ④ シェルの有無 # 公式イメージ — シェルに入れる docker run --rm
-it demo-official /bin/sh # DHI — 失敗する docker run --rm -it demo-dhi /bin/sh DHI の runtime にはシェルがない → 攻撃面が減る build 用と runtime 用を分ける理由がここで腹落ちする
20 まとめ Docker は便利。だからこそ最初から安全に DHI なら FROM を変えるだけで脆弱性がほぼゼロに 「軽い」だけじゃない —
「中身を確認できる」のが本質 観点 公式イメージ DHI 脆弱性 多い ほぼゼロ 証明書 2種類 15 種類(署名付き) シェル(本番) あり なし 管理者権限 明示が必要 デフォルトで OFF
21 今日からどう始めるか 1. Docker Desktop をインストール 2. Dockerfile の FROM
を DHI に変える FROM dhi.io/node:24-debian13 3. Docker Desktop の Images タブで脆弱性を確認
22 Q&A ご質問があればどうぞ。 質問がある方は LinkedIn から気軽にお声がけください!