소개
컨테이너화된 애플리케이션 서비스는 systemd 유닛, 래퍼 (wrapper) 명령, 이미지 참조, 컨테이너 런타임, 애플리케이션 출력 등 여러 계층으로 구성됩니다. 잘못된 이미지 태그가 설정되어 있으면 애플리케이션이 시작되기도 전에 서비스가 실패할 수 있습니다.
이 실습에서는 rhce-container-app.service가 Podman 을 사용하여 UBI 10 minimal 컨테이너를 실행합니다. 올바른 이미지는 이미 로컬에 풀 (pull) 되어 있지만, 서비스 환경 파일이 잘못된 태그를 가리키고 있습니다. 여러분은 서비스 실패 원인을 진단하고, 이미지 태그를 수정하며, 서비스를 재시작하고, 실행 중인 컨테이너를 검증하게 됩니다.
컨테이너 서비스 실패 확인
이 단계에서는 컨테이너 설정을 변경하기 전에 실패한 systemd 유닛을 검사합니다.
프로젝트 디렉토리로 이동하여 작업 공간을 생성합니다.
cd /home/labex/project
mkdir -p container-service
서비스 상태를 확인합니다.
systemctl is-failed rhce-container-app.service || true
선택한 서비스 속성을 저장합니다.
systemctl show rhce-container-app.service -p ActiveState -p Result -p ExecMainStatus | tee container-service/service-state.txt
최근 서비스 로그를 읽습니다.
sudo journalctl -u rhce-container-app.service -n 20 --no-pager
애플리케이션이 준비 파일을 생성하기 전에 서비스가 실패하는 것을 확인할 수 있습니다.
이미지 및 환경 파일 검사
이 단계에서는 로컬에 사용 가능한 이미지와 서비스에서 사용하는 이미지 태그를 비교합니다.
로컬 이미지를 나열합니다.
sudo podman images | tee container-service/images.txt
서비스 환경 파일을 읽습니다.
sudo cat /etc/rhce-container/app.env | tee container-service/env-before.txt
래퍼 명령을 확인합니다.
sudo sed -n '1,16p' /usr/local/bin/rhce-container-run
로컬 이미지 태그는 latest이지만, 서비스는 missing을 가리키고 있습니다.
이미지 태그 복구
이 단계에서는 서비스 환경 파일만 업데이트하여 풀 (pull) 된 이미지 태그를 사용하도록 수정합니다.
잘못된 태그를 교체합니다.
sudo sed -i 's/:missing/:latest/' /etc/rhce-container/app.env
수정된 환경 설정을 저장합니다.
sudo cat /etc/rhce-container/app.env | tee container-service/env-after.txt
이제 서비스가 로컬에 존재하는 이미지를 가리키게 되었습니다.
컨테이너 서비스 재시작
이 단계에서는 실패 상태를 초기화하고 systemd 로 관리되는 컨테이너를 재시작합니다.
실패 상태를 재설정합니다.
sudo systemctl reset-failed rhce-container-app.service
서비스를 재시작합니다.
sudo systemctl restart rhce-container-app.service
활성 상태를 저장합니다.
systemctl is-active rhce-container-app.service | tee container-service/service-final.txt
이제 Podman 이 올바른 이미지를 사용할 수 있으므로 서비스가 활성 상태를 유지해야 합니다.
실행 중인 컨테이너 검증
이 단계에서는 Podman 상태와 애플리케이션 준비 파일을 확인합니다.
실행 중인 컨테이너를 나열합니다.
sudo podman ps --filter name=rhce-container-app --format "{{.Names}} {{.Status}}" | tee container-service/container-state.txt
컨테이너가 생성한 준비 파일을 읽습니다.
cat /srv/rhce-container/ready.txt | tee container-service/ready.txt
컨테이너화된 서비스가 정상적으로 실행 중이며 예상된 출력을 생성했습니다.
요약
systemd 로 관리되는 Podman 서비스의 실패 원인을 진단하고, 사용 가능한 이미지와 설정된 이미지 태그를 비교하여 환경 파일을 수정했으며, 서비스를 재시작하고 실행 중인 컨테이너와 애플리케이션 준비 파일을 검증했습니다.



