目的
- podman を理解する
手段
- killercodaで手を動かす
環境
killercoda
podman とは
Podman (pod manager の略) は、コンテナを開発、管理、実行するためのオープンソースツール です。podman はデーモンレスで実行されるため、root 権限を持つプロセスを必要としません。故に、セキュリティ面で向上が図られています。そもそも、podman開発の思想としても、docker 比較で docker で改善したい点を考慮して開発されたようです。(デーモンレス等々)
podman 4.0 では k8s 環境の pod を直接操作できるようで、k8s 環境のコンテナ管理ツールのデファクトになっていくのでしょうか。
触ってみる
コマンド体系を理解する。
controlplane:~$ podman --help
Manage pods, containers and images
Usage:
podman [options] [command]
Available Commands:
attach Attach to a running container
# 実に docker コマンドに似ています。
# 基本的には、`podman xx オプション 対象` 的な組み合わせでしょう
コンテナをビルドする。
controlplane:~/image$ podman build -t app .
STEP 1/5: FROM ubuntu
-- snip --
controlplane:~/image$
controlplane:~/image$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/app latest 2cf32a0eb453 11 seconds ago 137 MB
# podman ps コマンドでローカルのイメージを確認できます
コンテナを起動する。
controlplane:~/image$ podman run -d app sleep 1d
24dd5c89e6ba7925ddf17a084515e97ea96a995db34366cc56aaf2e26dbb9f97
controlplane:~/image$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
24dd5c89e6ba localhost/app:latest sleep 1d 5 seconds ago Up 5 seconds gifted_robinson
# podman run -d {コンテナ名 or コンテナID} {実行コマンド} で実行できます
環境変数を渡して実行する。
controlplane:~/image$ podman run -it -e TOKEN=xxxx app bash -c 'echo $TOKEN'
xxxx
controlplane:~/image$
あとがき
ソースに貼り付けた Readhadさんの記事位分かり易く書けるようになりたいですね。
podman desktopも触りたいですし、そもそものコンテナの仕組みも人に説明できるくらいにはしっかりと理解したいです。。。