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.

Ủng hộ tác giả 🍺


Published

Category

frontpage

Tags

Contact