본문 바로가기
Server

Rocky_Linux에서 Dockerfile을 사용하여 컨테이너 이미지 생성하기

by Lcoding 2025. 2. 3.
반응형

 

안녕하세요.

 

오늘은 Rocky_Linux에서 Dockerfile을 이용해서 직접 컨테이너 이미지를 생성해보겠습니다.


1. Dockerfile이란?

Dockerfile은 컨테이너 이미지를 자동으로 생성하는 스크립트입니다.

- 필요한 환경(OS, 패키지, 설정 등)을 코드로 정의
- docker build 명령으로 커스텀 이미지 생성 가능

2. 간단한 Dockerfile 작성

작업 폴더 생성 및 이동

mkdir my-docker-app && cd my-docker-app

 

Dockerfile 생성

vi Dockerfile

 

Dockerfile 내용 작성 (예제: Nginx 웹 서버)

# 1. 사용할 베이스 이미지 설정
FROM nginx:latest

# 2. 컨테이너 내부에 파일 복사
COPY index.html /usr/share/nginx/html/index.html

# 3. 컨테이너가 실행될 때 사용할 기본 명령어
CMD ["nginx", "-g", "daemon off;"]

생성한 Dockerfile 내에 위의 내용 작성후 :wq로 저장

내용 입력후 :wq를 입력하여 저장하고 빠져나옵니다.



  중간 정리 
FROM nginx:latest → Nginx 최신 버전을 기반으로 이미지 생성
COPY index.html ... → index.html 파일을 컨테이너 내부로 복사
CMD ["nginx", "-g", "daemon off;"] → Nginx 실행

 

3. 간단한 HTML 파일 추가

index.html 파일 생성

vi index.html

ll 명령어로 Dockerfile이 잘 생성되었는지 확인하고 index.html파일을 생성합니다.



예제 HTML 내용 입력

<!DOCTYPE html>
<html>
<head>
    <title>My Docker App</title>
</head>
<body>
    <h1>Hello, Docker!</h1>
</body>
</html>

생성한 index.html 내에 위의 내용 작성후 :wq로 저장

내용 입력후 :wq를 입력하여 저장하고 빠져나옵니다.
이전과 마찬가지로 ll 명령어를 이용하여 index.html 파일이 잘 생성되었는지 확인합니다.


4. Docker 이미지 빌드

  현재 디렉토리(.)의 Dockerfile을 사용하여 이미지 생성

sudo docker build -t my-nginx-app .

 

(이름이 my-nginx-app인 이미지 생성)

  생성된 이미지 확인

sudo docker images

 

 

5. 컨테이너 실행 및 확인

  my-nginx-app 컨테이너 실행

sudo docker run -d -p 8080:80 my-nginx-app

 

-d → 백그라운드 실행
-p 8080:80 → 호스트의 8080 포트를 컨테이너의 80 포트와 연결

 

  실행 확인

sudo docker ps

 

(컨테이너가 실행 중인지 확인)

컨테이너 실행 후 sudo docker ps 명령어를 이용해 확인합니다.

 

  웹 브라우저에서 확인
브라우저에서 http://localhost:8080 접속 → "Hello, Docker!" 화면 확인

웹에서 url을 통해 확인합니다.

 

 

6. 컨테이너 중지 및 삭제

  실행 중인 컨테이너 중지

sudo docker stop <컨테이너 ID>

 

(또는 docker stop $(docker ps -q) 로 모든 컨테이너 중지)

  컨테이너 삭제

sudo docker rm <컨테이너 ID>

 

  이미지 삭제

sudo docker rmi my-nginx-app

Container ID 이용하여 컨테이너를 중지 및 삭제 합니다.

 


정리
  Dockerfile을 사용해 커스텀 이미지 생성
docker build로 이미지 빌드
docker run으로 컨테이너 실행 및 포트 매핑
브라우저에서 실행 확인 후 정리

여기까지 Rocky_Linux에서 Dockerfile을 이용해서 직접 컨테이너 이미지를 생성하고 삭제해보았습니다.

 

감사합니다.

 

반응형

loading