컨테이너 기초 (podman)
컨테이너 기초 — podman 으로 자바 앱을 이미지로 만들고, 실행하고, systemd 에 등록하고, 폐쇄망에 반입하기
RHEL 에 기본으로 들어 있는 podman 으로 Spring Boot jar 를 컨테이너로 띄웁니다. Containerfile 작성, 이미지 빌드, 포트·볼륨·환경 변수로 실행, 로그와 상태 확인, quadlet 으로 systemd 등록, 그리고 인터넷 없는 서버에 이미지를 파일로 옮기는 절차까지 다룹니다. docker 명령과 거의 같아 둘 다 쓸 수 있습니다.
1. 왜 배우는가
"내 PC 에서는 되는데 서버에서는 안 된다" 의 원인은 대개 JDK 버전, 시간대, 라이브러리 차이입니다. 컨테이너는 앱과 실행 환경을 이미지 하나로 묶어 어디서나 같은 환경을 보장합니다. 운영 묶음 04 의 배포 폴더 구조를 이미지 한 장으로 대체하는 셈입니다.
podman 은 데몬 없이 동작하고 root 없이도 컨테이너를 띄울 수 있어 RHEL 이 docker 대신 채택했습니다. 명령은 docker 와 같으므로 alias docker=podman 으로 기존 문서를 그대로 따라 할 수 있습니다.
폐쇄망은 이미지를 인터넷에서 받을 수 없습니다. podman save 로 파일로 만들어 반입하고 podman load 로 등록하는 절차가 필요합니다. 이 레슨의 스크립트는 podman 이 없는 환경에서 DRY_RUN 으로 흐름을 검증했고 Containerfile 과 quadlet 은 문법을 검토했습니다.