14.3. systemd를 사용하여 컨테이너 자동 시작
systemctl
명령을 사용하여 systemd
시스템 및 서비스 관리자의 상태를 제어할 수 있습니다. 루트가 아닌 사용자로 서비스를 활성화, 시작, 중지할 수 있습니다. 서비스를 root 사용자로 설치하려면 --user
옵션을 생략합니다.
사전 요구 사항
-
container-tools
meta-package가 설치되어 있습니다.
절차
systemd
관리자 설정을 다시 로드합니다.# systemctl --user daemon-reload
서비스
container.service
를 활성화하고 부팅 시 시작합니다.# systemctl --user enable container.service
즉시 서비스를 시작하십시오.
# systemctl --user start container.service
서비스 상태를 확인합니다.
$ systemctl --user status container.service ● container.service - Podman container.service Loaded: loaded (/home/user/.config/systemd/user/container.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-09-16 11:56:57 CEST; 8s ago Docs: man:podman-generate-systemd(1) Process: 80602 ExecStart=/usr/bin/podman run --conmon-pidfile //run/user/1000/container.service-pid --cidfile //run/user/1000/container.service-cid -d ubi9-minimal:> Process: 80601 ExecStartPre=/usr/bin/rm -f //run/user/1000/container.service-pid //run/user/1000/container.service-cid (code=exited, status=0/SUCCESS) Main PID: 80617 (conmon) CGroup: /user.slice/user-1000.slice/user@1000.service/container.service ├─ 2870 /usr/bin/podman ├─80612 /usr/bin/slirp4netns --disable-host-loopback --mtu 65520 --enable-sandbox --enable-seccomp -c -e 3 -r 4 --netns-type=path /run/user/1000/netns/cni-> ├─80614 /usr/bin/fuse-overlayfs -o lowerdir=/home/user/.local/share/containers/storage/overlay/l/YJSPGXM2OCDZPLMLXJOW3NRF6Q:/home/user/.local/share/contain> ├─80617 /usr/bin/conmon --api-version 1 -c cbc75d6031508dfd3d78a74a03e4ace1732b51223e72a2ce4aa3bfe10a78e4fa -u cbc75d6031508dfd3d78a74a03e4ace1732b51223e72> └─cbc75d6031508dfd3d78a74a03e4ace1732b51223e72a2ce4aa3bfe10a78e4fa └─80626 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1d
systemctl is-enabled container.service
명령을 사용하여 서비스가 활성화되어 있는지 확인할 수 있습니다.
검증
실행 중이거나 종료된 컨테이너를 나열합니다.
# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f20988d59920 registry.access.redhat.com/ubi9-minimal:latest top 12 seconds ago Up 11 seconds ago funny_zhukovsky
참고
container.service
를 중지하려면 다음을 입력합니다.
# systemctl --user stop container.service
추가 리소스
-
systemctl
man 페이지 - Podman을 사용하여 컨테이너 실행 및 공유 가능한 systemd 서비스
- 부팅 시 시스템 서비스가 시작되도록 활성화