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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
suzuki
April 22, 2026
Technology
55
0
Share
Docker を安全に始めよう ~Docker Hardened Images (DHI) 入門~
suzuki
April 22, 2026
More Decks by suzuki
See All by suzuki
Docker の AI 新機能を使ってみよう!
atsushi_suzuki
0
74
GPSの仕組み
atsushi_suzuki
0
450
電圧計測の基礎 -ノイズの原因と対策 -
atsushi_suzuki
0
220
自動車の仕組み
atsushi_suzuki
0
150
【論文紹介】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
「強制アップデート」か「チームの自律」か?エンタープライズが辿り着いたプラットフォームのハイブリッド運用/cloudnative-kaigi-hybrid-platform-operations
mhrtech
0
220
20260515 ログイン機能だけではないアカウント管理を全体で考える~サービス設計者向け~
oidfj
1
860
インプロセスQAのための要因から捉えるプロジェクトリスクマネジメントnano #1 開発リソース効率状態への対処 #jasstnano
barus_qa
0
210
SpeechTranscriber + AIによる文字起こし機能
kazuki1220
0
120
[みん強]AIの価値を最大化するデータ基盤戦略:Self-Service型Data Meshへの転換とAgentic AI Meshに向けた取り組み with Snowflake他
y_matsubara
1
150
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
260
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
440
Purview 勉強会報告 Microsoft Purview 入門しようとしてみた
masakichixo
1
460
AI-Assisted Contributions and Maintainer Load - PyCon US 2026
pauloxnet
1
180
Pythonでベイズモデリング
soogie
0
140
20260516_SecJAWS_Days
takuyay0ne
2
520
JaSSTに関わることで変わった人生観 #jasstnano
makky_tyuyan
0
160
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
370
Navigating Weather and Climate Data
rabernat
0
190
Build your cross-platform service in a week with App Engine
jlugia
234
18k
sira's awesome portfolio website redesign presentation
elsirapls
0
250
RailsConf 2023
tenderlove
30
1.4k
Typedesign – Prime Four
hannesfritz
42
3k
Crafting Experiences
bethany
1
150
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Raft: Consensus for Rubyists
vanstee
141
7.4k
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 から気軽にお声がけください!