Over the limit
[Docker] Dockerfile에 대해 본문
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 |