14.5. Podman을 사용하여 systemd 장치 파일 생성
Podman을 사용하면 systemd
가 컨테이너 프로세스를 제어하고 관리할 수 있습니다. podman generate
명령을 사용하여 기존 컨테이너 및 Pod에 대한 systemd 장치 파일을 생성할 수 있습니다. 생성된 장치 파일이 Podman 업데이트를 통해 자주 변경되고 systemd
podman generate systemd
를 사용하면 최신 버전의 장치 파일을 가져오므로 podman generate systemd
를 사용하는 것이 좋습니다.
Podman v4.6부터 일반 systemd
장치 파일과 유사한 형식으로 컨테이너를 실행하는 방법을 설명하고 systemd
에서 실행 중인 컨테이너의 복잡성을 숨길 수 있습니다.
사전 요구 사항
-
container-tools
meta-package가 설치되어 있습니다.
절차
컨테이너를 만듭니다(예:
myubi
):$ podman create --name myubi registry.access.redhat.com/ubi9:latest sleep infinity 0280afe98bb75a5c5e713b28de4b7c5cb49f156f1cce4a208f13fee2f75cb453
컨테이너 이름 또는 ID를 사용하여
systemd
장치 파일을 생성하고 이를~/.config/systemd/user/container-myubi.service
파일로 보냅니다.$ podman generate systemd --name myubi > ~/.config/systemd/user/container-myubi.service
검증
생성된
systemd
장치 파일의 내용을 표시합니다.$ cat ~/.config/systemd/user/container-myubi.service # container-myubi.service # autogenerated by Podman 3.3.1 # Wed Sep 8 20:34:46 CEST 2021 [Unit] Description=Podman container-myubi.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 myubi ExecStop=/usr/bin/podman stop -t 10 myubi ExecStopPost=/usr/bin/podman stop -t 10 myubi PIDFile=/run/user/1000/containers/overlay-containers/9683103f58a32192c84801f0be93446cb33c1ee7d9cdda225b78049d7c5deea4/userdata/conmon.pid Type=forking [Install] WantedBy=multi-user.target default.target
-
Restart=on-failure
행은 재시작 정책을 설정하고 서비스를 완전히 시작하거나 중지할 수 없거나 프로세스가 0이 아닌 경우 다시 시작하도록systemd
에 지시합니다. -
ExecStart
행은 컨테이너를 시작하는 방법을 설명합니다. -
ExecStop
행은 컨테이너를 중지하고 제거하는 방법을 설명합니다.
-