컨테이너 내부에서 서비스 실행하기

DockerIntermediate
지금 연습하기

소개

이 챌린지에서는 Red Hat Enterprise Linux 시스템에서 컨테이너화된 서비스를 관리하는 실습을 진행합니다. 여러분의 과제는 웹 서버를 위한 사용자 정의 컨테이너 이미지를 빌드하고, 해당 이미지를 기반으로 컨테이너를 실행하며, 호스트 시스템에서 서비스에 접속할 수 있는지 확인하는 것입니다. 이 연습은 Red Hat 공인 시스템 관리자 (RHCSA) 의 핵심 역량인 컨테이너 기반 애플리케이션 배포 및 관리 기술을 다룹니다.

컨테이너 내부에서 서비스 실행하기

이 챌린지에서는 Apache HTTP 서버 (httpd) 를 포함하는 사용자 정의 컨테이너 이미지를 빌드합니다. 웹 서버를 통해 제공될 간단한 HTML 파일을 생성하고, 직접 만든 이미지를 사용하여 컨테이너를 실행합니다. 마지막으로 웹 서비스가 정상적으로 작동하며 호스트에서 접근 가능한지 검증합니다.

과제

  • Apache HTTP 서버 (httpd) 가 포함된 사용자 정의 컨테이너 이미지를 빌드합니다.
  • 웹 서버에서 서비스할 간단한 HTML 파일을 생성합니다.
  • 사용자 정의 이미지로 컨테이너를 실행하고 웹 서비스를 외부에 노출합니다.
  • 웹 서비스가 올바르게 실행 중이며 호스트에서 접근 가능한지 확인합니다.

요구 사항

  • 모든 파일은 ~/project 디렉토리 내에 생성해야 합니다.
  • ubi9 베이스 이미지를 사용하는 Dockerfile을 작성합니다.
  • Dockerfile에는 httpd 패키지 설치 과정이 포함되어야 합니다.
  • <h1> 태그 안에 Hello, World!라는 텍스트가 포함된 index.html 파일을 생성합니다.
  • 컨테이너 이미지를 빌드하고 태그를 my-web-server로 지정합니다.
  • my-web-server 이미지를 사용하여 백그라운드에서 컨테이너를 실행합니다.
  • 컨테이너의 이름은 my-web-server-run으로 설정해야 합니다.
  • 컨테이너 내부의 웹 서버는 80번 포트에서 대기해야 하며, 이 포트는 호스트의 8080번 포트와 매핑되어야 합니다.

예시

컨테이너를 성공적으로 시작한 후, 터미널에서 curl localhost:8080 명령을 실행하면 다음과 유사한 결과가 출력되어야 합니다.

<html>
  <body>
    <h1>Hello, World!</h1>
  </body>
</html>

요약

이 챌린지에서는 Red Hat Enterprise Linux 시스템에서 서비스를 컨테이너화하는 방법을 배웠습니다. 사용자 정의 환경을 정의하기 위한 Dockerfile을 성공적으로 작성하고, podman을 사용하여 컨테이너 이미지를 빌드했으며, 웹 서버를 호스팅하는 컨테이너를 실행했습니다. 또한 실행 중인 컨테이너의 상태를 확인하고 네트워크 서비스를 테스트하는 실습을 진행했습니다. 이러한 기술은 현대적인 애플리케이션 배포와 시스템 관리에 있어 필수적인 역량입니다.

✨ 솔루션 확인 및 연습