podman - chương trình phổ biến ngày nay để thay thế docker, có tính năng sinh systemd unit configuration file giúp deploy container 1 cách thuận tiện.
$ podman run -p 8000:80 docker.io/nginx
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d81df8a1a11 docker.io/library/nginx:latest nginx -g daemon o... About a minute ago Up About a minute ago 0.0.0.0:8000->80/tcp wizardly_ptolemy
# ở cửa sổ khác
$ podman generate systemd 2d81df8a1a11
# container-2d81df8a1a117e290052df6e18f592ddb21f83b1b159169cc3391f605aaa47a7.service
# autogenerated by Podman 3.4.4
# Wed Mar 19 20:08:06 JST 2025
[Unit]
Description=Podman container-2d81df8a1a117e290052df6e18f592ddb21f83b1b159169cc3391f605aaa47a7.service
Documentation=man:podman-generate-systemd(1)
Wants=network-online.target
After=network-online.target
RequiresMountsFor=/run/user/1000/containers
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
TimeoutStopSec=70
ExecStart=/usr/bin/podman start 2d81df8a1a117e290052df6e18f592ddb21f83b1b159169cc3391f605aaa47a7
ExecStop=/usr/bin/podman stop -t 10 2d81df8a1a117e290052df6e18f592ddb21f83b1b159169cc3391f605aaa47a7
ExecStopPost=/usr/bin/podman stop -t 10 2d81df8a1a117e290052df6e18f592ddb21f83b1b159169cc3391f605aaa47a7
PIDFile=/run/user/1000/containers/overlay-containers/2d81df8a1a117e290052df6e18f592ddb21f83b1b159169cc3391f605aaa47a7/userdata/conmon.pid
Type=forking
[Install]
WantedBy=default.target
copy file này vào /lib/systemd/system/xyz.service , systemctl daemon-reload, systemctl enable xyz; systemctl start xyz là xong.
Kết luận
Không chỉ thay thế docker, podman còn bảo mật (ko chạy với root) và tiện dụng hơn nhiều.
Hết.
HVN at https://pymi.vn and https://www.familug.org.