Docker 파일 작성하는 방법
들어가며
도커를 통해 배포를 실행하려면 도커 파일을 작성해 이미지로 만들고 컨테이너에 올려야 하는 과정을 걷혀야 한다.
도커 파일을 작성에 우분투 OS에 Nginx 서버를 사용해 간단하게 사용해 보자
도커 파일이란?
도커파일은 도커 컨테이너 이미지를 만들기 위한 텍스트 파일입니다. 도커 파일은 도커 엔진에게 컨테이너가 어떻게 구성되어야 하는지 참고하는 파일이다. 도커파일에는 베이스 이미지의 선택, 필요한 패키지의 설치, 환경 변수의 설정 등의 작업등을 작성할 수 있다. 이 파일을 사용하면 동일한 환경을 가진 여러 개의 컨테이너를 쉽게 만들고 실행할 수 있습니다.
도커 파일 작성 방법
Dokcerfile
FROM ubuntu
RUN apt-get update
RUN apt-get install -y nginx
WORKDIR /var/www/html
COPY webapp/index.html ./index.nginx-debian.html
ENTRYPOINT ["nginx", "-g", "daemon off;"]
- FROM : FROM절은 Docker 이미지의 기본이 되는 베이스 이미지를 설정하는 것이다. 이번 포스팅에서는 ubuntu를 기본 베이스로 사용하기 때문에 ubuntu로 작성 만약에 jar 파일로 하려면 openjdk:<버전>을 작성하면 된다.
- RUN : 도커 이미지를 빌드할 때 실행되는 명령어를 사용한다. (ubuntu를 사용해 서버를 뛰울 예정 이다. 아직 nginx서버가 설치되어있지 않기 때문에 nginx 설치를 하기 위해서 리눅스 명령어를 대신 실행해 준다.)
- WOKRDIR : 도커로 실행 중인 컨테이너를 접속했을 때 현재 위치해 있는 폴더 위치를 지정해 준다.
- COPY : webapp/index.html에 호스트에 위치해 있는 html을 접속한 위치에 index.nginx-debian.html 파일로 복사한다.
- ENTRYPOINT : ENTRYPOINT는 Docker 컨테이너가 시작될 때 실행되는 명령어나 스크립트를 설정하는 명령어입니다.
도커파일 실행
다음 과같이 파일 구조로 예로 들어보겠습니다.
도커를 사용하기 전에 DockerEngine가 설치되어 있어야 하며, window를 사용하신다면 10 pro,11 이상 버전만 사용가능.
●도커 파일을 위치한 디렉터리 최상위 폴더로 이동한다.
● docker build -t <지정할 이미지명> .
명령어 실행. 은 현재 폴더를 위치한다.
imagename을 first-image로 설정되면서 이미지 파일이 생성되었다.
● docker run -d -p 8000:80 <생성한 이미지 명>
명령어 작성
성공적으로 컨테이너가 실행됐으며, 정상적으로 작동 중이다.
localhost:8000으로 접속하면
indxt.html이 나오는 것을 볼 수 있다.
작동 중인 컨테이너 내부 살펴보기
한번 도커파일을 작성해 보고 실행해서 컨테이너까지 올려봤다. 하지만 도커파일이 어떻게 실행되는지 한번 컨테이너에 접속해서 직접 봐보자!
현재 실행 중인 컨테이너에 접속해 보면
현재 위치가 /var/www/html 인 것을 볼 수 있다. 즉 WORKDIR은 컨테이너로 접속이 작성한 위치로 이동하라는 명령어라고 생각하면 쉽다.
/var/www/html 디렉터리에 파일을 보면 index.nginx-debian.html이 존재한다. 이 html의 내용을 보면 내가 작성한 html 내용인 것을 볼 수 있다. 즉, COPY는 복사 -> 붙여 넣기로 생각하면 쉽다.
'Devops > 도커' 카테고리의 다른 글
[Docker] 도커로 만든 MySQL을 MySQL Workbench로 연동하는 방법 및 볼륨 사용하기 (1) | 2024.01.31 |
---|---|
[Docker] nginx 설정파일 커스텀 해보기 (1) | 2024.01.31 |
[Docker] 헬스체크와 디펜던시 체크란? (1) | 2024.01.27 |
[도커] 도커 컨테이너란? (0) | 2024.01.18 |
[Docker] SpringBoot만든 jar파일 배포하기(Mysql 연동) (6) | 2024.01.17 |