홈 › 리눅스 운영 › 13 / 13

Docker 실무

Dockerfile·다단계 빌드·실행 옵션·Compose·레지스트리·폐쇄망 반입 (podman 대응)
섹션 7진행 0 / 13

6. 연습 문제

1. 다단계 빌드를 쓰는 이유는 무엇인가

빌드 도구가 들어간 무거운 이미지를 최종 이미지에서 빼기 위해서입니다. JDK 로 컴파일하고 JRE 로만 실행하면 이미지 크기가 크게 줄어듭니다.

2. 컨테이너 종료 코드 137 과 143 의 차이는

137 은 128+9 로 SIGKILL 을 받아 강제 종료된 경우이며, 메모리 초과(OOM)가 흔한 원인입니다. 143 은 128+15 로 SIGTERM 을 받아 정상적으로 완전 종료된 경우입니다.

3. Docker 와 podman 의 가장 큰 구조 차이는

Docker 는 root 권한의 데몬이 항상 떠 있어야 하지만, podman 은 데몬 없이 클라이언트가 직접 컨테이너를 실행합니다. RHEL 서버는 이 차이 때문에 podman 을 기본으로 채택했습니다.

4. 폐쇄망 서버에 이미지를 옮기는 절차는

docker save 이미지 | gzip > app.tar.gz 로 파일을 만들고 체크섬을 남긴 뒤, 내부망이나 매체로 옮겨 docker load < app.tar.gz 로 등록합니다.

5. Compose 의 `depends_on.condition: service_healthy` 는 무엇을 보장하는가

의존하는 서비스가 단순히 시작된 것이 아니라 healthcheck 를 통과해 실제로 요청을 받을 준비가 된 뒤에 다음 서비스를 시작하게 합니다.