SlideShare a Scribd company logo
DockerとPodmanの比較
日本電信電話株式会社
ソフトウェアイノベーションセンタ
須田 瑛大
Container Runtime Meetup (2021/1/28)
1
Copyright 2021 NTT CORPORATION
自己紹介
色々なコンテナ関連OSSのメンテナ (コミッタ)
• Moby (OSS版Docker), BuildKit, containerd, runc
• RootlessKit, slirp4netns (Docker・Podman共通のRootlessコンテナツールキット)
• Podmanのリポジトリにもwrite権限を持っている
「Docker/Kubernetes 開発・運用のための
セキュリティ実践ガイド」執筆
• Docker/KubernetesだけでなくPodmanも網羅
• https://www.amazon.co.jp/dp/4839970505
2
Copyright 2021 NTT CORPORATION
Podmanとは
• Docker互換のコンテナエンジン
• RHEL, CentOS, Fedora などに 標準で付属している
• Kubernetesで動いているPodをmanageできるわけではない
ただしCRI-OのPodの一覧とdiffの表示くらいはできる (podman ps --external, podman diff)
$ podman run –p 80:80 –-name nginx docker.io/library/nginx
3
Copyright 2021 NTT CORPORATION
主な比較観点
アーキテクチャ リリースサイクル コミュニティ
CLI API Compose
ネットワーク イメージビルド セキュリティ
技術以外の観点も比較
4
Copyright 2021 NTT CORPORATION
比較するバージョン
• Docker 20.10.2
• Podman 3.0.0-rc1
• RHEL/CentOS 8.3 に付属するバージョンは 2.0
• RHEL 8系列にPodman 3.xが入るのはRHEL 8.5以降と思われる
5
Copyright 2021 NTT CORPORATION
結論から先に
• デーモンを起動しなくても使えるのがPodmanの最大の特徴
• ただし、OS起動時にコンテナも起動するには結局systemdの設定を触る
必要があるので、好みがわかれる
• リリースサイクルの点ではPodmanが魅力的
• 機能面や性能面では、重要な違いは少ない
• 2020年までは色々違っていた
• イメージビルドに関してはPodmanはまだ遅れている
6
Copyright 2021 NTT CORPORATION
比較観点: アーキテクチャ
• Docker はデーモン(dockerd)とクライアント(docker CLI)に分かれ
ており、REST APIで通信する
• Podman は基本的にデーモン無しで動作する
• 厳密にはデーモン無しで動作するわけではなく、むしろコンテナ毎 (Pod毎) に小さ
いデーモン (conmon) をバックグラウンドで起動する
• ホストOS起動時にコンテナを自動的に起動するには、systemd unitをいちいち作
成する必要がある
› podman generate systemd <CONTAINER|POD>
› podman system boot (unitファイルを1つで済ませる仕組み。Podman 3.1前後で入る見込み #8828 )
7
Copyright 2021 NTT CORPORATION
比較観点: アーキテクチャ
• バッチジョブ型のコンテナを実行する場合は、Podmanの方が使い
やすいかもしれない
• サービス型のコンテナを実行する場合は、DockerでもPodmanで
も、systemdを設定するから手間から逃れられない
• どちらの方が使いやすいかは微妙
• コンテナ毎に podman generate systemd しないといけないので、(Podman
3.1がリリースされるまでは)、むしろPodmanの方が不便かもしれない
8
Copyright 2021 NTT CORPORATION
比較観点: アーキテクチャ
• Podmanの方が、ランタイムのバグが顕在化しにくい
• あるコンテナを担当するPodmanプロセスやconmonプロセスが、ク
ラッシュしたりメモリリークしたりしていても、他のコンテナには影響
しない
• Dockerでは live-restore モードを有効化すれば、デーモンの
クラッシュによるコンテナへの影響は軽減できるが、完全で
はない
9
Copyright 2021 NTT CORPORATION
比較観点: アーキテクチャ
ベンチマーク
# docker pull nginx:alpine
# ntimes –n 300 docker run –d nginx:alpine
Docker: overlay2, runc / Podman: overlay, crun / ホスト: Ubuntu 20.10、CPU 4コア、RAM 8GB
200
250
300
350
400
450
500
550
600
0 50 100 150 200 250
msec
N
Docker
Podman
Podmanのほうが若干遅いが、大した差ではない
10
Copyright 2021 NTT CORPORATION
比較観点: アーキテクチャ
ベンチマーク
# docker pull nginx:alpine
# ntimes –n 300 docker run –d nginx:alpine
Docker: overlay2, runc / Podman: overlay, crun / ホスト: Ubuntu 20.10、CPU 4コア、RAM 8GB
Docker Podman
平均 275 ms 377 ms
最大 415 ms 576 ms
最小 227 ms 247 ms
標準偏差 23 ms 58 ms
99th パーセンタイル 337 ms 500 ms
95th パーセンタイル 310 ms 465 ms
50th パーセンタイル 273 ms 381 ms
11
Copyright 2021 NTT CORPORATION
比較観点: リリースサイクル
• Docker界隈は新機能のpull requestが投稿されても、マージさ
れ、かつ、リリースが出るまでには時間がかかる
• Podmanの方がリリースサイクルが格段に早い
• コンテナ界隈の新機能を(野良ビルドせずに)試すにはPodman
の方が向いていることが多い
12
Copyright 2021 NTT CORPORATION
比較観点: リリースサイクル
1Q 2Q 3Q 4Q 1Q 2Q 3Q 4Q
2019 2020
Docker
19.03
(7月)
Docker
20.10
(12月)
Podman
2.2
Podman
2.1
Podman
1.9, 2.0
Podman
1.7, 1.8
Podman
1.6
Podman
1.5
Podman
1.3, 1.4
Podman
1.0-1.2
※細かいリリース (x.y.zのz) については、Dockerも頻繁にリリースしている
13
Copyright 2021 NTT CORPORATION
比較観点: コミュニティ
• Docker (の大半) は Docker社を中心とするMoby コミュニティによ
り開発されている ( github.com/moby )
• Podman はRed Hat社を中心とする github.com/containers コミュ
ニティにより開発されている
• Docker社が単独でDocker (Moby) を作っているわけではないし、
Red Hat社が単独でPodmanを作っているわけでもない
• いずれのコミュニティも、CNCFなどのfoundationには属していない
• いずれも大部分がオープンソース (Apache License 2.0)
• Docker for Mac/Win はプロプラ部分が多い
14
Copyright 2021 NTT CORPORATION
比較観点: コミュニティ
• Red Hat社がDockerに投稿したパッチ
の一部がマージされなかったことが、
Podman発足の背景として挙げられる
• 良くも悪くも、Podmanの方がパッチの
マージには積極的
https://www.projectatomic.io/docs/docker_patches/
15
Copyright 2021 NTT CORPORATION
https://merge-chance.info/
比較観点: コミュニティ
2021/1/25 取得
16
Copyright 2021 NTT CORPORATION
あとは細かい話
大きい違いは以上
17
Copyright 2021 NTT CORPORATION
比較観点: CLI
• PodmanのCLIはDockerとほぼ同じ
• 基本的に alias podman=docker して良い
• podman network inspect など一部のコマンドは出力が非互換
18
Copyright 2021 NTT CORPORATION
比較観点: API
• Podman 1.x の API (varlink) はDocker非互換
• Podman 2.0からはDocker REST APIに対応
• podman system service [--timeout=0] コマンドでDocker互換デーモ
ンが起動する (/run/podman/podman.sock)
• 2.x では互換性が低かったが、3.0 では ほぼ問題ない
• 3.0 でも細かいところは非互換
19
Copyright 2021 NTT CORPORATION
比較観点: Compose
• かつてのPodmanは、Docker Compose との互換性を追求する
ことに消極的だった
• 複数のコンテナをPodに収めて、Pod内のlocalhostソケット経由で通信さ
せることが推奨されていた
• Podman 3.0 では、Docker互換APIを通じて
docker-compose コマンドをそのまま実行できる
# export DOCKER_HOST=unix:///run/podman/podman.sock
# docker-compose up
20
Copyright 2021 NTT CORPORATION
比較観点: Kubernetes マニフェスト
• Podman は名前の通り、Podをfirst classなオブジェクトとして
扱える
• Pod内のコンテナはnetwork namespace などを共有するので、localhost
のソケットで通信できる (サイドカーに便利)
• Dockerでも docker run --net=container:<SANDBOX> コマンドで実現
できるが、やや面倒
• KubernetesのPodとは独立している。Kubernetesで動いてい
るPodのmanagement とは基本的に関係ない。
• podman ps 、 podman diff などごく一部のコマンドはKubernetes
(CRI-O) のPodにも対応
21
Copyright 2021 NTT CORPORATION
比較観点: Kubernetes マニフェスト
• podman play kube コマンドで、KubernetesのPodマニフェス
トやDeploymentマニフェストを直接実行できる
• が、極めて基本的なマニフェストしか実行できない
• Kubernetesのマニフェストをローカルで動かしたい場合は、
kind (Kubernetes-in-Docker) を使う方が良い
• Docker、Podman 両対応
• 軽量さでは podman play kube コマンドの方が魅力的ではある
22
Copyright 2021 NTT CORPORATION
比較観点: Kubernetes マニフェスト
• 結局、Podman で Pod を扱う場面は多くはない
• 個人的には “Podman” は いい名前ではないと思う
23
Copyright 2021 NTT CORPORATION
比較観点: ネットワーク
• Docker は libnetwork を使うのに対し、Podman は
Kubernetes と同様に CNI (Container Network Interface) を
使う
• PodmanでもDockerと同様に podman network create コマ
ンドでカスタムネットワークを作成できる
24
Copyright 2021 NTT CORPORATION
比較観点: ネットワーク
• ただし、Podman ではカスタムネットワーク間の通信が隔離され
ないので、カスタムネットワークを作る意味があまりない (Podman
3.0rc1 現在)
• CNI isolation pluginを別途インストールすると、Podman でも
ネットワークを隔離できる
• https://github.com/AkihiroSuda/cni-isolation
• Podman 3.1 か 3.2 ころでデフォルトになることを目指している (#5805)
25
Copyright 2021 NTT CORPORATION
比較観点: イメージビルド
• Docker は BuildKit を使うのに対し、Podman は Buildah を
使う
• Buildah は BuildKit に比べるとかなり遅れている印象
• マルチステージDockerfileを並列ビルドできない
• RUN --mount=type=(cache|secret|ssh) など最新のDockerfile syntax
に対応していない
• マルチアーキテクチャイメージを簡単にビルドできない
26
Copyright 2021 NTT CORPORATION
比較観点: イメージビルド
• Podman向けに複雑なイメージをビルドする際は、BuildKitの
buildctl コマンド を使うのが良さそう (Docker不要)
$ buildctl build ... --output type=oci | podman load foo
27
Copyright 2021 NTT CORPORATION
比較観点: セキュリティ [Rootless]
• Dockerも Podmanも Rootless モード に対応している
• 非rootでコンテナランタイムを実行することで、root権限を奪われにくく
する技術
• Podman の方がリリースが頻繁なこともあり、Podman固有の
機能と勘違いされがち
• 実装自体は連携とりながらほぼ同時期
• いずれもUser Namespaces、RootlessKit、slirp4netns など
共通する技術基盤を使っている
28
Copyright 2021 NTT CORPORATION
比較観点: セキュリティ [Rootless]
• Docker 20.10、Podman 2.1以降では機能的にほぼ同等
• Docker 19.03以前のRootlessでは docker run の --memory や --cpus
が使えなかった
• Podman 2.0以前のRootlessでは podman network create できなかった
• ただし、Docker Compose は Podman の Rootless では十分
に動かない (Podman 3.0 rc1 現在)
• podman network connect が未実装のため
• 3.1か、3.2 頃までには動くようにできそう
29
Copyright 2021 NTT CORPORATION
比較観点: その他
• Docker Swarm に相当する機能は Podman には無い
• Docker for Mac/Win に相当するプロダクトは Podman には
無い
• ただし、Red Hat Code Ready Containers (ラップトップ用OpenShift)
を入れると、Podman も一緒についてくる
• Docker for Mac/Win、 Red Hat CRC いずれともプロプライエタリな部
分が大きい
30
Copyright 2021 NTT CORPORATION
まとめ
• デーモンを起動しなくても使えるのがPodmanの最大の特徴
• ただし、OS起動時にコンテナも起動するには結局systemdの設定を触る
必要があるので、好みがわかれる
• リリースサイクルの点ではPodmanが魅力的
• 機能面や性能面では、重要な違いは少ない
• 2020年までは色々違っていた
• イメージビルドに関してはPodmanはまだ遅れている
31
Copyright 2021 NTT CORPORATION
ありがちな誤解
以下は全て誤解
• 「PodmanはKubernetesが呼び出すランタイムである」
• 「RHEL/CentOS 8 や Fedora ではDockerは動かないので
Podmanを使う必要がある」
• 「RootlessコンテナはPodman固有の機能」
• 「PodmanではDocker Composeは使えない」
補足資料
32
Copyright 2021 NTT CORPORATION
誤解「PodmanはKubernetesが呼び出すランタイムである」
• PodmanがmanageするPodは、基本的にKubernetesのPodと
関係ない
• (Virtual Kubelet を使えばPodmanのPodをKubernetesでオーケストレー
トできるが、POC留まり)
• PodmanはKubernetesのランタイムであるとする言説を散見す
るが、おそらく CRI-O と混同している
• Podman とコードや主要開発者が重なっている
• CRI-O は Docker ではなく containerd と競合する
補足資料
33
Copyright 2021 NTT CORPORATION
誤解「RHEL/CentOS 8 ではDockerは動かないのでPodmanを
使う必要がある」
• RHEL 8 や CentOS 8 には Docker のRPMが含まれないのは事実
• すなわち、RHEL ユーザへのRed Hat社によるサポートもない
• CentOS 8 には Docker社公式のRPMが提供されている
https://download.docker.com/linux/centos/8/
• CentOS 8 とバイナリ互換性がある他のOSでもおそらく動作する
補足資料
34
Copyright 2021 NTT CORPORATION
誤解「Fedora ではDockerは動かないのでPodmanを使う必要
がある」
• Docker 19.03 は Fedora 31以降のデフォルトの構成では動かな
かった
• Docker 20.10 は cgroup v2 に対応したので、Fedoraでもデフォ
ルトで動く
• Fedoraが配布しているパッケージは19.03で止まっている
• Docker社が配布しているパッケージは20.10対応 (https://get.docker.com)
• Fedora 34リリース時には、Fedoraからも20.10が配布されるはず
補足資料
35
Copyright 2021 NTT CORPORATION
誤解「RootlessコンテナはPodman固有の機能」
• Rootlessコンテナ自体は2013年から存在 (unprivileged LXC)
• 2016年-2017年にはruncのRootlessが実現
• 2018年にはcontainerd、BuildKit、imgのRootlessが実現
• 続いて、PodmanやDockerのRootlessも実現
• Red Hatや弊社で連携とりながら、ほぼ同時期に実装
• Docker関連リポジトリのpull requestのマージやリリースに時間がかかって
いる間に、PodmanがRootlessコンテナの代表として認知されるようになった
補足資料
36
Copyright 2021 NTT CORPORATION
誤解「PodmanではDocker Composeは使えない」
• Podman 3.0 ではAPIの互換性が十分に高いので、Docker
Compose をそのまま実行できる
• export DOCKER_HOST=unix:///run/podman/podman.sock してから
docker-compose コマンドを実行するだけ
• Podman Compose という独自実装もある
https://github.com/containers/podman-compose
• 古いバージョンのPodmanにも対応
補足資料
Ad

More Related Content

What's hot (20)

コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
NTT DATA Technology & Innovation
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
NTT DATA Technology & Innovation
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
Yoshiyasu SAEKI
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
0から始めるコンテナの学び方(Kubernetes Novice Tokyo #14 発表資料)
NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 

Similar to DockerとPodmanの比較 (20)

[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10
Akihiro Suda
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
Akihiro Suda
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
Akihiro Suda
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
 
Docker入門
Docker入門Docker入門
Docker入門
Shun Tsunoda
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
Suguru Yazawa
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
teruyaono1
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
 
パフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したいパフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したい
zaru sakuraba
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
 
remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱い
Hiroyuki Ohnaka
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話
gree_tech
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
Takeshi Morikawa
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
Hitachi, Ltd. OSS Solution Center.
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
decode2016
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Masahito Zembutsu
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
softlayerjp
 
[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10
Akihiro Suda
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
Akihiro Suda
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
Akihiro Suda
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
Suguru Yazawa
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
teruyaono1
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
 
パフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したいパフォーマンス計測Ciサービスを作って得た知見を共有したい
パフォーマンス計測Ciサービスを作って得た知見を共有したい
zaru sakuraba
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
Saki Homma
 
捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
雄哉 吉田
 
remote Docker over SSHが熱い
remote Docker over SSHが熱いremote Docker over SSHが熱い
remote Docker over SSHが熱い
Hiroyuki Ohnaka
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話
gree_tech
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
Microsoft Corporation
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
Takeshi Morikawa
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
decode2016
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Masahito Zembutsu
 
いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達いまからでも遅くない Docker事始め&愉快な仲間達
いまからでも遅くない Docker事始め&愉快な仲間達
softlayerjp
 
Ad

More from Akihiro Suda (20)

20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
Akihiro Suda
 
20250403 [KubeCon EU Pavilion] containerd.pdf
20250403 [KubeCon EU Pavilion] containerd.pdf20250403 [KubeCon EU Pavilion] containerd.pdf
20250403 [KubeCon EU Pavilion] containerd.pdf
Akihiro Suda
 
20250402 [KubeCon EU Pavilion] Lima.pdf_
20250402 [KubeCon EU Pavilion] Lima.pdf_20250402 [KubeCon EU Pavilion] Lima.pdf_
20250402 [KubeCon EU Pavilion] Lima.pdf_
Akihiro Suda
 
20241115 [KubeCon NA Pavilion] Lima.pdf_
20241115 [KubeCon NA Pavilion] Lima.pdf_20241115 [KubeCon NA Pavilion] Lima.pdf_
20241115 [KubeCon NA Pavilion] Lima.pdf_
Akihiro Suda
 
20241113 [KubeCon NA Pavilion] containerd.pdf
20241113 [KubeCon NA Pavilion] containerd.pdf20241113 [KubeCon NA Pavilion] containerd.pdf
20241113 [KubeCon NA Pavilion] containerd.pdf
Akihiro Suda
 
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
Akihiro Suda
 
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
Akihiro Suda
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
Akihiro Suda
 
20240321 [KubeCon EU Pavilion] Lima.pdf_
20240321 [KubeCon EU Pavilion] Lima.pdf_20240321 [KubeCon EU Pavilion] Lima.pdf_
20240321 [KubeCon EU Pavilion] Lima.pdf_
Akihiro Suda
 
20240320 [KubeCon EU Pavilion] containerd.pdf
20240320 [KubeCon EU Pavilion] containerd.pdf20240320 [KubeCon EU Pavilion] containerd.pdf
20240320 [KubeCon EU Pavilion] containerd.pdf
Akihiro Suda
 
20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf
Akihiro Suda
 
[Podman Special Event] Kubernetes in Rootless Podman
[Podman Special Event] Kubernetes in Rootless Podman[Podman Special Event] Kubernetes in Rootless Podman
[Podman Special Event] Kubernetes in Rootless Podman
Akihiro Suda
 
[KubeConNA2023] Lima pavilion
[KubeConNA2023] Lima pavilion[KubeConNA2023] Lima pavilion
[KubeConNA2023] Lima pavilion
Akihiro Suda
 
[KubeConNA2023] containerd pavilion
[KubeConNA2023] containerd pavilion[KubeConNA2023] containerd pavilion
[KubeConNA2023] containerd pavilion
Akihiro Suda
 
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
Akihiro Suda
 
[CNCF TAG-Runtime] Usernetes Gen2
[CNCF TAG-Runtime] Usernetes Gen2[CNCF TAG-Runtime] Usernetes Gen2
[CNCF TAG-Runtime] Usernetes Gen2
Akihiro Suda
 
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
Akihiro Suda
 
The internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesThe internals and the latest trends of container runtimes
The internals and the latest trends of container runtimes
Akihiro Suda
 
[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion
Akihiro Suda
 
[KubeConEU2023] containerd pavilion
[KubeConEU2023] containerd pavilion[KubeConEU2023] containerd pavilion
[KubeConEU2023] containerd pavilion
Akihiro Suda
 
20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
20250403 [KubeCon EU] containerd - Project Update and Deep Dive.pdf
Akihiro Suda
 
20250403 [KubeCon EU Pavilion] containerd.pdf
20250403 [KubeCon EU Pavilion] containerd.pdf20250403 [KubeCon EU Pavilion] containerd.pdf
20250403 [KubeCon EU Pavilion] containerd.pdf
Akihiro Suda
 
20250402 [KubeCon EU Pavilion] Lima.pdf_
20250402 [KubeCon EU Pavilion] Lima.pdf_20250402 [KubeCon EU Pavilion] Lima.pdf_
20250402 [KubeCon EU Pavilion] Lima.pdf_
Akihiro Suda
 
20241115 [KubeCon NA Pavilion] Lima.pdf_
20241115 [KubeCon NA Pavilion] Lima.pdf_20241115 [KubeCon NA Pavilion] Lima.pdf_
20241115 [KubeCon NA Pavilion] Lima.pdf_
Akihiro Suda
 
20241113 [KubeCon NA Pavilion] containerd.pdf
20241113 [KubeCon NA Pavilion] containerd.pdf20241113 [KubeCon NA Pavilion] containerd.pdf
20241113 [KubeCon NA Pavilion] containerd.pdf
Akihiro Suda
 
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
【情報科学若手の会 (2024/09/14】なぜオープンソースソフトウェアにコントリビュートすべきなのか
Akihiro Suda
 
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
【Vuls祭り#10 (2024/08/20)】 VexLLM: LLMを用いたVEX自動生成ツール
Akihiro Suda
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
Akihiro Suda
 
20240321 [KubeCon EU Pavilion] Lima.pdf_
20240321 [KubeCon EU Pavilion] Lima.pdf_20240321 [KubeCon EU Pavilion] Lima.pdf_
20240321 [KubeCon EU Pavilion] Lima.pdf_
Akihiro Suda
 
20240320 [KubeCon EU Pavilion] containerd.pdf
20240320 [KubeCon EU Pavilion] containerd.pdf20240320 [KubeCon EU Pavilion] containerd.pdf
20240320 [KubeCon EU Pavilion] containerd.pdf
Akihiro Suda
 
20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf20240201 [HPC Containers] Rootless Containers.pdf
20240201 [HPC Containers] Rootless Containers.pdf
Akihiro Suda
 
[Podman Special Event] Kubernetes in Rootless Podman
[Podman Special Event] Kubernetes in Rootless Podman[Podman Special Event] Kubernetes in Rootless Podman
[Podman Special Event] Kubernetes in Rootless Podman
Akihiro Suda
 
[KubeConNA2023] Lima pavilion
[KubeConNA2023] Lima pavilion[KubeConNA2023] Lima pavilion
[KubeConNA2023] Lima pavilion
Akihiro Suda
 
[KubeConNA2023] containerd pavilion
[KubeConNA2023] containerd pavilion[KubeConNA2023] containerd pavilion
[KubeConNA2023] containerd pavilion
Akihiro Suda
 
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
Akihiro Suda
 
[CNCF TAG-Runtime] Usernetes Gen2
[CNCF TAG-Runtime] Usernetes Gen2[CNCF TAG-Runtime] Usernetes Gen2
[CNCF TAG-Runtime] Usernetes Gen2
Akihiro Suda
 
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
[DockerCon 2023] Reproducible builds with BuildKit for software supply chain ...
Akihiro Suda
 
The internals and the latest trends of container runtimes
The internals and the latest trends of container runtimesThe internals and the latest trends of container runtimes
The internals and the latest trends of container runtimes
Akihiro Suda
 
[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion[KubeConEU2023] Lima pavilion
[KubeConEU2023] Lima pavilion
Akihiro Suda
 
[KubeConEU2023] containerd pavilion
[KubeConEU2023] containerd pavilion[KubeConEU2023] containerd pavilion
[KubeConEU2023] containerd pavilion
Akihiro Suda
 
Ad

DockerとPodmanの比較

  • 2. 1 Copyright 2021 NTT CORPORATION 自己紹介 色々なコンテナ関連OSSのメンテナ (コミッタ) • Moby (OSS版Docker), BuildKit, containerd, runc • RootlessKit, slirp4netns (Docker・Podman共通のRootlessコンテナツールキット) • Podmanのリポジトリにもwrite権限を持っている 「Docker/Kubernetes 開発・運用のための セキュリティ実践ガイド」執筆 • Docker/KubernetesだけでなくPodmanも網羅 • https://www.amazon.co.jp/dp/4839970505
  • 3. 2 Copyright 2021 NTT CORPORATION Podmanとは • Docker互換のコンテナエンジン • RHEL, CentOS, Fedora などに 標準で付属している • Kubernetesで動いているPodをmanageできるわけではない ただしCRI-OのPodの一覧とdiffの表示くらいはできる (podman ps --external, podman diff) $ podman run –p 80:80 –-name nginx docker.io/library/nginx
  • 4. 3 Copyright 2021 NTT CORPORATION 主な比較観点 アーキテクチャ リリースサイクル コミュニティ CLI API Compose ネットワーク イメージビルド セキュリティ 技術以外の観点も比較
  • 5. 4 Copyright 2021 NTT CORPORATION 比較するバージョン • Docker 20.10.2 • Podman 3.0.0-rc1 • RHEL/CentOS 8.3 に付属するバージョンは 2.0 • RHEL 8系列にPodman 3.xが入るのはRHEL 8.5以降と思われる
  • 6. 5 Copyright 2021 NTT CORPORATION 結論から先に • デーモンを起動しなくても使えるのがPodmanの最大の特徴 • ただし、OS起動時にコンテナも起動するには結局systemdの設定を触る 必要があるので、好みがわかれる • リリースサイクルの点ではPodmanが魅力的 • 機能面や性能面では、重要な違いは少ない • 2020年までは色々違っていた • イメージビルドに関してはPodmanはまだ遅れている
  • 7. 6 Copyright 2021 NTT CORPORATION 比較観点: アーキテクチャ • Docker はデーモン(dockerd)とクライアント(docker CLI)に分かれ ており、REST APIで通信する • Podman は基本的にデーモン無しで動作する • 厳密にはデーモン無しで動作するわけではなく、むしろコンテナ毎 (Pod毎) に小さ いデーモン (conmon) をバックグラウンドで起動する • ホストOS起動時にコンテナを自動的に起動するには、systemd unitをいちいち作 成する必要がある › podman generate systemd <CONTAINER|POD> › podman system boot (unitファイルを1つで済ませる仕組み。Podman 3.1前後で入る見込み #8828 )
  • 8. 7 Copyright 2021 NTT CORPORATION 比較観点: アーキテクチャ • バッチジョブ型のコンテナを実行する場合は、Podmanの方が使い やすいかもしれない • サービス型のコンテナを実行する場合は、DockerでもPodmanで も、systemdを設定するから手間から逃れられない • どちらの方が使いやすいかは微妙 • コンテナ毎に podman generate systemd しないといけないので、(Podman 3.1がリリースされるまでは)、むしろPodmanの方が不便かもしれない
  • 9. 8 Copyright 2021 NTT CORPORATION 比較観点: アーキテクチャ • Podmanの方が、ランタイムのバグが顕在化しにくい • あるコンテナを担当するPodmanプロセスやconmonプロセスが、ク ラッシュしたりメモリリークしたりしていても、他のコンテナには影響 しない • Dockerでは live-restore モードを有効化すれば、デーモンの クラッシュによるコンテナへの影響は軽減できるが、完全で はない
  • 10. 9 Copyright 2021 NTT CORPORATION 比較観点: アーキテクチャ ベンチマーク # docker pull nginx:alpine # ntimes –n 300 docker run –d nginx:alpine Docker: overlay2, runc / Podman: overlay, crun / ホスト: Ubuntu 20.10、CPU 4コア、RAM 8GB 200 250 300 350 400 450 500 550 600 0 50 100 150 200 250 msec N Docker Podman Podmanのほうが若干遅いが、大した差ではない
  • 11. 10 Copyright 2021 NTT CORPORATION 比較観点: アーキテクチャ ベンチマーク # docker pull nginx:alpine # ntimes –n 300 docker run –d nginx:alpine Docker: overlay2, runc / Podman: overlay, crun / ホスト: Ubuntu 20.10、CPU 4コア、RAM 8GB Docker Podman 平均 275 ms 377 ms 最大 415 ms 576 ms 最小 227 ms 247 ms 標準偏差 23 ms 58 ms 99th パーセンタイル 337 ms 500 ms 95th パーセンタイル 310 ms 465 ms 50th パーセンタイル 273 ms 381 ms
  • 12. 11 Copyright 2021 NTT CORPORATION 比較観点: リリースサイクル • Docker界隈は新機能のpull requestが投稿されても、マージさ れ、かつ、リリースが出るまでには時間がかかる • Podmanの方がリリースサイクルが格段に早い • コンテナ界隈の新機能を(野良ビルドせずに)試すにはPodman の方が向いていることが多い
  • 13. 12 Copyright 2021 NTT CORPORATION 比較観点: リリースサイクル 1Q 2Q 3Q 4Q 1Q 2Q 3Q 4Q 2019 2020 Docker 19.03 (7月) Docker 20.10 (12月) Podman 2.2 Podman 2.1 Podman 1.9, 2.0 Podman 1.7, 1.8 Podman 1.6 Podman 1.5 Podman 1.3, 1.4 Podman 1.0-1.2 ※細かいリリース (x.y.zのz) については、Dockerも頻繁にリリースしている
  • 14. 13 Copyright 2021 NTT CORPORATION 比較観点: コミュニティ • Docker (の大半) は Docker社を中心とするMoby コミュニティによ り開発されている ( github.com/moby ) • Podman はRed Hat社を中心とする github.com/containers コミュ ニティにより開発されている • Docker社が単独でDocker (Moby) を作っているわけではないし、 Red Hat社が単独でPodmanを作っているわけでもない • いずれのコミュニティも、CNCFなどのfoundationには属していない • いずれも大部分がオープンソース (Apache License 2.0) • Docker for Mac/Win はプロプラ部分が多い
  • 15. 14 Copyright 2021 NTT CORPORATION 比較観点: コミュニティ • Red Hat社がDockerに投稿したパッチ の一部がマージされなかったことが、 Podman発足の背景として挙げられる • 良くも悪くも、Podmanの方がパッチの マージには積極的 https://www.projectatomic.io/docs/docker_patches/
  • 16. 15 Copyright 2021 NTT CORPORATION https://merge-chance.info/ 比較観点: コミュニティ 2021/1/25 取得
  • 17. 16 Copyright 2021 NTT CORPORATION あとは細かい話 大きい違いは以上
  • 18. 17 Copyright 2021 NTT CORPORATION 比較観点: CLI • PodmanのCLIはDockerとほぼ同じ • 基本的に alias podman=docker して良い • podman network inspect など一部のコマンドは出力が非互換
  • 19. 18 Copyright 2021 NTT CORPORATION 比較観点: API • Podman 1.x の API (varlink) はDocker非互換 • Podman 2.0からはDocker REST APIに対応 • podman system service [--timeout=0] コマンドでDocker互換デーモ ンが起動する (/run/podman/podman.sock) • 2.x では互換性が低かったが、3.0 では ほぼ問題ない • 3.0 でも細かいところは非互換
  • 20. 19 Copyright 2021 NTT CORPORATION 比較観点: Compose • かつてのPodmanは、Docker Compose との互換性を追求する ことに消極的だった • 複数のコンテナをPodに収めて、Pod内のlocalhostソケット経由で通信さ せることが推奨されていた • Podman 3.0 では、Docker互換APIを通じて docker-compose コマンドをそのまま実行できる # export DOCKER_HOST=unix:///run/podman/podman.sock # docker-compose up
  • 21. 20 Copyright 2021 NTT CORPORATION 比較観点: Kubernetes マニフェスト • Podman は名前の通り、Podをfirst classなオブジェクトとして 扱える • Pod内のコンテナはnetwork namespace などを共有するので、localhost のソケットで通信できる (サイドカーに便利) • Dockerでも docker run --net=container:<SANDBOX> コマンドで実現 できるが、やや面倒 • KubernetesのPodとは独立している。Kubernetesで動いてい るPodのmanagement とは基本的に関係ない。 • podman ps 、 podman diff などごく一部のコマンドはKubernetes (CRI-O) のPodにも対応
  • 22. 21 Copyright 2021 NTT CORPORATION 比較観点: Kubernetes マニフェスト • podman play kube コマンドで、KubernetesのPodマニフェス トやDeploymentマニフェストを直接実行できる • が、極めて基本的なマニフェストしか実行できない • Kubernetesのマニフェストをローカルで動かしたい場合は、 kind (Kubernetes-in-Docker) を使う方が良い • Docker、Podman 両対応 • 軽量さでは podman play kube コマンドの方が魅力的ではある
  • 23. 22 Copyright 2021 NTT CORPORATION 比較観点: Kubernetes マニフェスト • 結局、Podman で Pod を扱う場面は多くはない • 個人的には “Podman” は いい名前ではないと思う
  • 24. 23 Copyright 2021 NTT CORPORATION 比較観点: ネットワーク • Docker は libnetwork を使うのに対し、Podman は Kubernetes と同様に CNI (Container Network Interface) を 使う • PodmanでもDockerと同様に podman network create コマ ンドでカスタムネットワークを作成できる
  • 25. 24 Copyright 2021 NTT CORPORATION 比較観点: ネットワーク • ただし、Podman ではカスタムネットワーク間の通信が隔離され ないので、カスタムネットワークを作る意味があまりない (Podman 3.0rc1 現在) • CNI isolation pluginを別途インストールすると、Podman でも ネットワークを隔離できる • https://github.com/AkihiroSuda/cni-isolation • Podman 3.1 か 3.2 ころでデフォルトになることを目指している (#5805)
  • 26. 25 Copyright 2021 NTT CORPORATION 比較観点: イメージビルド • Docker は BuildKit を使うのに対し、Podman は Buildah を 使う • Buildah は BuildKit に比べるとかなり遅れている印象 • マルチステージDockerfileを並列ビルドできない • RUN --mount=type=(cache|secret|ssh) など最新のDockerfile syntax に対応していない • マルチアーキテクチャイメージを簡単にビルドできない
  • 27. 26 Copyright 2021 NTT CORPORATION 比較観点: イメージビルド • Podman向けに複雑なイメージをビルドする際は、BuildKitの buildctl コマンド を使うのが良さそう (Docker不要) $ buildctl build ... --output type=oci | podman load foo
  • 28. 27 Copyright 2021 NTT CORPORATION 比較観点: セキュリティ [Rootless] • Dockerも Podmanも Rootless モード に対応している • 非rootでコンテナランタイムを実行することで、root権限を奪われにくく する技術 • Podman の方がリリースが頻繁なこともあり、Podman固有の 機能と勘違いされがち • 実装自体は連携とりながらほぼ同時期 • いずれもUser Namespaces、RootlessKit、slirp4netns など 共通する技術基盤を使っている
  • 29. 28 Copyright 2021 NTT CORPORATION 比較観点: セキュリティ [Rootless] • Docker 20.10、Podman 2.1以降では機能的にほぼ同等 • Docker 19.03以前のRootlessでは docker run の --memory や --cpus が使えなかった • Podman 2.0以前のRootlessでは podman network create できなかった • ただし、Docker Compose は Podman の Rootless では十分 に動かない (Podman 3.0 rc1 現在) • podman network connect が未実装のため • 3.1か、3.2 頃までには動くようにできそう
  • 30. 29 Copyright 2021 NTT CORPORATION 比較観点: その他 • Docker Swarm に相当する機能は Podman には無い • Docker for Mac/Win に相当するプロダクトは Podman には 無い • ただし、Red Hat Code Ready Containers (ラップトップ用OpenShift) を入れると、Podman も一緒についてくる • Docker for Mac/Win、 Red Hat CRC いずれともプロプライエタリな部 分が大きい
  • 31. 30 Copyright 2021 NTT CORPORATION まとめ • デーモンを起動しなくても使えるのがPodmanの最大の特徴 • ただし、OS起動時にコンテナも起動するには結局systemdの設定を触る 必要があるので、好みがわかれる • リリースサイクルの点ではPodmanが魅力的 • 機能面や性能面では、重要な違いは少ない • 2020年までは色々違っていた • イメージビルドに関してはPodmanはまだ遅れている
  • 32. 31 Copyright 2021 NTT CORPORATION ありがちな誤解 以下は全て誤解 • 「PodmanはKubernetesが呼び出すランタイムである」 • 「RHEL/CentOS 8 や Fedora ではDockerは動かないので Podmanを使う必要がある」 • 「RootlessコンテナはPodman固有の機能」 • 「PodmanではDocker Composeは使えない」 補足資料
  • 33. 32 Copyright 2021 NTT CORPORATION 誤解「PodmanはKubernetesが呼び出すランタイムである」 • PodmanがmanageするPodは、基本的にKubernetesのPodと 関係ない • (Virtual Kubelet を使えばPodmanのPodをKubernetesでオーケストレー トできるが、POC留まり) • PodmanはKubernetesのランタイムであるとする言説を散見す るが、おそらく CRI-O と混同している • Podman とコードや主要開発者が重なっている • CRI-O は Docker ではなく containerd と競合する 補足資料
  • 34. 33 Copyright 2021 NTT CORPORATION 誤解「RHEL/CentOS 8 ではDockerは動かないのでPodmanを 使う必要がある」 • RHEL 8 や CentOS 8 には Docker のRPMが含まれないのは事実 • すなわち、RHEL ユーザへのRed Hat社によるサポートもない • CentOS 8 には Docker社公式のRPMが提供されている https://download.docker.com/linux/centos/8/ • CentOS 8 とバイナリ互換性がある他のOSでもおそらく動作する 補足資料
  • 35. 34 Copyright 2021 NTT CORPORATION 誤解「Fedora ではDockerは動かないのでPodmanを使う必要 がある」 • Docker 19.03 は Fedora 31以降のデフォルトの構成では動かな かった • Docker 20.10 は cgroup v2 に対応したので、Fedoraでもデフォ ルトで動く • Fedoraが配布しているパッケージは19.03で止まっている • Docker社が配布しているパッケージは20.10対応 (https://get.docker.com) • Fedora 34リリース時には、Fedoraからも20.10が配布されるはず 補足資料
  • 36. 35 Copyright 2021 NTT CORPORATION 誤解「RootlessコンテナはPodman固有の機能」 • Rootlessコンテナ自体は2013年から存在 (unprivileged LXC) • 2016年-2017年にはruncのRootlessが実現 • 2018年にはcontainerd、BuildKit、imgのRootlessが実現 • 続いて、PodmanやDockerのRootlessも実現 • Red Hatや弊社で連携とりながら、ほぼ同時期に実装 • Docker関連リポジトリのpull requestのマージやリリースに時間がかかって いる間に、PodmanがRootlessコンテナの代表として認知されるようになった 補足資料
  • 37. 36 Copyright 2021 NTT CORPORATION 誤解「PodmanではDocker Composeは使えない」 • Podman 3.0 ではAPIの互換性が十分に高いので、Docker Compose をそのまま実行できる • export DOCKER_HOST=unix:///run/podman/podman.sock してから docker-compose コマンドを実行するだけ • Podman Compose という独自実装もある https://github.com/containers/podman-compose • 古いバージョンのPodmanにも対応 補足資料