Over the limit

[Docker] Dockerfile에 대해 본문

Devops/Docker

[Docker] Dockerfile에 대해

ellapk 2024. 10. 17. 11:49

 

1. Dockerfile이란?

"Docker 이미지 생성 지침"

 

명령어를 토대로 Dockerfile을 작성한 후 빌드하면, Docker는 Dockerfile에 나열된 명령문을 차례대로 수행하며

Docker Image를 생성한다.

 

 

만약, 이 Dockerfile이 없다면

 

1) 특정 웹서버 이미지를 도커를 통해 다운

2) 웹서버 이미지를 컨테이너로 실행

3) 컨테이너에 웹서버에 빌드할 서버 파일을 import

4) 서버를 구동

 

다음과 같은 절차로 웹 서버를 도커에서 구동해야하지만

 

Docker file이 있다면

 

1) 서버파일 측에서 dockerfile을 작성

2) dockerfile build 해서 웹 서버 이미지 생성

3) 방금 빌드한 이미지를 컨테이너로 실행 -> 자동 서버 구동

 

이런식으로 간편하게 작업을 간소화할 수 있다.

 

 

 

 

2.Dockerfile 옵션

 

■ FROM

FROM ubuntu:18.04

 

 

생성할 이미지의 베이스가 될 이미지를 의미한다.

로컬에 해당 이미지가 없는 경우, Docker Hub에서 가져온다.

 

 

LABEL

LABEL "purpose"="practice"

 

이미지에 메타 데이터를 추가한다 (key-value 형태)

 

 

 RUN

RUN apt-get update
RUN apt-get install apache2 -y

 

도커가 빌드되는 동안 명령어를 실행하는 데 사용된다.

주로 소프트웨어 패키지 설치, 파일 시스템 설정, 필요한 종속성 설치 등의 작업을 수행한다.

 

 

WORKDIR

WORKDIR /home/app

 

작업 디렉토리를 지정한다. 해당 디렉토리가 없으면 새로 생성한다.

지정 후, 명령어는 해당 디렉토리를 기준으로 동작한다.

 

 

EXPOSE

EXPOSE 80

 

빌드로 생성된 이미지에서 열어줄 포트를 의미한다.

호스트웨 컨테이너 포트 매핑 시 사용된다.

 

 

CMD

CMD apachectl -DFOREGROUND

 

컨테이너를 시작될 때마다 실행할 명령어.

Dockerfile에서 한번만 사용할 수 있다.

 

 

 

 

 

 

3.Dockerfile 빌드 및 실행

 

■ Dockerfile 빌드 

docker build -t {이미지명:버전명} {작성한 도커파일 경로}
docker build -t testimg .

 

 

■ 빌드한 이미지 실행

docker run -p {입력포트}:{컨테이너포트} {컨테이너명}
docker run 8080:80 test-container

'Devops > Docker' 카테고리의 다른 글

[Docker] Docker에 Tomcat 설치하기  (3) 2024.10.14
[Docker] Docker와 Kubernetes 비교  (1) 2024.07.10
[Docker] Docker compose  (0) 2024.07.06
[Docker] 윈도우에 도커 설치  (0) 2024.07.06