podmanの使い方
概要
- dockerの代替
alias docker="podman"
としても動くことを目標としているらしい- debianの最新カーネルでdockerが不安定になったのでpodmanで一部代替したらうまく行った
- rootlessとよばれ、dockerコンテナの権限がrootではなくユーザに限定されるので安全らしい
インストール
ubuntu, debian
$ sudo apt install podman
osx
$ brew install podman
osxはvmで動作するので初期化が必要
$ podman machine init
$ podman machine start
各種コンテナの実行
hello-world
$ podman run -it hello-world
Hello from Docker!
or
$ podman run -it docker.io/library/hello-world
Hello from Docker!
localstack
$ podman run -itd --rm -p 4566:4566 docker.io/localstack/localstack:latest
docker
と実行するのと異なりdocker.io/localstack/
が必要
dockerと同じ名前空間をshortnameで探す
/etc/containers/registries.conf
にunqualified-search-registries=["docker.io"]
を追加する
ネットワークをホストと共有する
--network=host
をつけて起動する
systemdの作成
- おそらくdockerではサポートされていない機能
- かんたんにサービスが作成できるので便利
動作しているコンテナからサービスのファイル作成
$ podman generate systemd --new --files --name <container id>
# ファイルが作成される
ユーザのsystemd-serviceに登録
$ mkdir -p ~/.config/systemd/user
$ cp <container name>.service ~/.config/systemd/user
$ systemctl --user enable <container name>.service
ユーザのログインコントロール(延長)
$ loginctl enable-linger $USER