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
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
Search
Azuma
November 16, 2024
Technology
3
930
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
#2 学生と社会人LT
https://gijutsu-club.connpass.com/event/334645/
Azuma
November 16, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
YOLOv10~v12
tenten0727
4
910
AI Agentを「期待通り」に動かすために:設計アプローチの模索と現在地
kworkdev
PRO
2
410
Micro Frontends: Necessity, Implementation, and Challenges
rainerhahnekamp
2
430
AWSのマルチアカウント管理 ベストプラクティス最新版 2025 / Multi-Account management on AWS best practice 2025
ohmura
4
230
Creating Awesome Change in SmartNews
martin_lover
1
260
AWSLambdaMCPServerを使ってツールとMCPサーバを分離する
tkikuchi
1
2.8k
Spice up your notifications/try!Swift25
noppefoxwolf
2
350
LangfuseでAIエージェントの 可観測性を高めよう!/Enhancing AI Agent Observability with Langfuse!
jnymyk
1
180
いつも初心者向けの記事に助けられているので得意分野では初心者向けの記事を書きます
toru_kubota
2
280
Automatically generating types by running tests
sinsoku
2
660
AIと開発者の共創: エージェント時代におけるAIフレンドリーなDevOpsの実践
bicstone
1
270
PicoRabbit: a Tiny Presentation Device Powered by Ruby
harukasan
PRO
2
120
Featured
See All Featured
KATA
mclloyd
29
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Faster Mobile Websites
deanohume
306
31k
Practical Orchestrator
shlominoach
186
10k
Building Flexible Design Systems
yeseniaperezcruz
329
38k
Facilitating Awesome Meetings
lara
54
6.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
A designer walks into a library…
pauljervisheath
205
24k
Building Applications with DynamoDB
mza
94
6.3k
Transcript
rootlessコンテナのすゝめ 研究室サーバーでもできる安全なコンテナ管理 Azuma (@azuma_alvin) 学生と社会人LT #2
1 自己紹介 • 修士1年 • Go, Kubernetes, Vimが好き • 研究室サーバーの管理人
Azuma @azuma_alvin @kitsuya0828
突然ですが 2
3 Dockerを使ったことがある人!
4 Dockerに「rootlessモード」が あるのを聞いたことがある人!
実は… ((((;゚Д゚)))) 5
6 デフォルトのroot権限で動作する Dockerは設定次第でホストに 深刻なリスクをもたらす!
7 $ sudo usermod -aG docker \ azuma dockerグループにユーザーを追加 すると何ができるようになる?
8 $ docker run –it \ --rm \ -v /:/tmp
\ ubuntu \ rm -rf /tmp Q1. 実行結果は? ※ 検証環境以外で実行しないでください
9 $ docker run -ti \ --name hacker \ --privileged
\ -v /:/host \ ubi8 \ chroot /host Q2. 実行結果は? ※ 検証環境以外で実行しないでください
10 https://docs.docker.com/engine/install/linux-postinstall/ • dockerグループはrootレベルの権限付与 • 非rootで実行するにはrootlessモード
11 rootlessモード移行を 検討する前に
コンテナエンジンの比較 12 rootlessモード デフォルトで rootless かつ daemonless ユーザーごとに daemonを起動させる
13 DockerとPodmanはほぼCLI互換 $ docker run -d \ --name my-nginx \
-p 8080:80 \ nginx $ podman run -d \ --name my-nginx \ -p 8080:80 \ nginx alias docker=podmanで切り替え可能
14 rootlessコンテナに 話を戻しましょう
15 rootlessコンテナ内でも apt-get installするために root権限を使える? → 可能 コンテナ内のrootユーザーは ホスト側から見た一般ユーザー
ユーザー名前空間 16 ホスト コンテナ 65536 0 … 2401 … 1083040
… 1148575 … 232 0 1 … 1000 1001 … 65536 nobody ... azuma:1083040:65536 /etc/subuid の内容: コンテナ内のrootユーザー = ホストから見た一般ユーザー azuma
17 $ podman run –it \ --rm \ -v /:/tmp
\ ubuntu \ rm -rf /tmp Q3. 実行結果は? ※ 検証環境以外で実行しないでください
18 研究室サーバー…|д゜)チラッ
研究室サーバーのPodman移行 19 • rootless • daemonless • Dockerと 高いCLI互換性 メリット
デメリット • 認知負荷? • 引き継ぎ?
NASをコンテナにマウントして書き込む 20 $ id uid=2401(azuma) gid=2401(azuma) groups=2401(azuma),995(nas_access),998(docker) の場合 $ docker
run -it --rm \ -u $(id -u):$(id -g) \ --group-add 995 \ -v $NAS_SOURCE:$DESTINATION \ myimage
NASをコンテナにマウントして書き込む 21 $ id uid=2401(azuma) gid=2401(azuma) groups=2401(azuma),995(nas_access),998(docker) の場合 $ podman
run -it --rm \ --userns keep-id \ --group-add keep-group \ -v $NAS_SOURCE:$DESTINATION \ myimage
22 コンテナって面白い!
23 もっと詳しく Podman入門とrootlessコンテナ(#9) てっく・ざ・ぶろぐ! https://alvinvin.hatenablog.jp/entry/9
24 参考書籍 Podman in Action Daniel Walsh https://developers.redhat.com/e-books/podman-action Podmanイン・アクション Daniel
Walsh (著)、磯田雄輝 ほか (翻訳)、秀和システム http://www.shuwasystem.co.jp/book/9784798070209.html