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
suzuki
April 22, 2026
Technology
65
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker を安全に始めよう ~Docker Hardened Images (DHI) 入門~
suzuki
April 22, 2026
More Decks by suzuki
See All by suzuki
Docker の AI 新機能を使ってみよう!
atsushi_suzuki
0
84
GPSの仕組み
atsushi_suzuki
0
490
電圧計測の基礎 -ノイズの原因と対策 -
atsushi_suzuki
0
240
自動車の仕組み
atsushi_suzuki
0
170
【論文紹介】TABULAR TRANSFORMERS FOR MODELING MULTIVARIATE TIME SERIES
atsushi_suzuki
0
220
逆求人アプリにUIルールを適用してみよう
atsushi_suzuki
0
270
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
MIXIで活躍できるエンジニアを 若手社員目線で考えてみる
mixi_engineers
PRO
0
150
コミュニティから始まった農業IoTとの7年間 ——人との関わりが教えてくれたこと
peacemaker07
0
110
マイナンバーカード本人確認の実装比較(OAuth/OIDC Numa (Immersion) Workshop 2026) / 20260825 numa-12
oidfj
PRO
0
130
AI時代のデータ基盤を考える問い
pacocat
0
600
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
0
780
dbt in Microsoft Fabric
ryomaru0825
0
250
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
1
600
内製AIチャットボット開発で学んだ Datadog Agent Observability活用術
mkdev10
0
130
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
0
200
[ホンマでっか SRE] あなたはなぜ SRE に?
_awache
0
120
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
250
tamachi.go 誕生の裏側
rymiyamoto
1
200
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
250
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
Why Our Code Smells
bkeepers
PRO
340
58k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A better future with KSS
kneath
240
18k
Balancing Empowerment & Direction
lara
6
1.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Building Adaptive Systems
keathley
44
3.2k
WENDY [Excerpt]
tessaabrams
11
39k
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 から気軽にお声がけください!