Docker File


Docker File이란 Docker Image를 만들기 위한 설정 파일입니다. 여러가지 명령어를 토대로 Docker File을 작성하면 설정된 내용대로 Docker Image를 만들 수 있습니다. 이전 포스트에서도 설명했듯이 Docker File을 읽을줄 안다는 것은 해당 이미지가 어떻게 구성되어 있는지 알 수 있다는 의미입니다.

 

Docker File 작성 예

 

 

 

$ vim Dockerfile

 

FROM ubuntu:14.04

   

# app 디렉토리 생성

RUN mkdir -p /app

 

#Docker 이미지 내부에서 RUN, CMD, ENTRYPOINT의 명령이 실행될 디렉터리를 설정합니다.

WORKDIR /app

   

현재 디렉터리에 있는 파일들을 이미지 내부 /app 디렉터리에 추가함

ADD     . /app

 

RUN apt-get update

RUN apt-get install apache2

RUN service apache2 start

 

VOLUME ["/data", "/var/log/httpd"]

 

# 하기 포트를 외부로 노출합니다.

EXPOSE 80

      

쉘을 사용하지 않고 컨테이너가 시작되었을 때 logbackup 스크립트를 실행

CMD ["/app/log.backup.sh"]

 

 

:wq!

 

컨테이너에 담을 파일들은 Dockerfile 하위디렉토리에 있어야하며 Dockerfile 안에서 ADD시 절대경로는 사용 불가능 합니다.

 

FROM 

기반이 되는 이미지 레이어입니다.

<이미지 이름>:<태그> 형식으로 작성 

ex) ubuntu:14.04

 

MAINTAINER 

메인테이너 정보입니다.

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

RUN 

도커이미지가 생성되기 전에 수행할 쉘 명령어

 

VOLUME 

VOLUME은 디렉터리의 내용을 컨테이너에 저장하지 않고 호스트에 저장하도록 설정합니다. 

데이터 볼륨을 호스트의 특정 디렉터리와 연결하려면 docker run 명령에서 -v 옵션을 사용해야 합니다. 

ex) -v /root/data:/data

 

CMD

컨테이너가 시작되었을 때 실행할 실행 파일 또는 셸 스크립트입니다. 

해당 명령어는 DockerFile내 1회만 쓸 수 있습니다.

 

WORKDIR  

CMD에서 설정한 실행 파일이 실행될 디렉터리입니다.

 

EXPOSE 

호스트와 연결할 포트 번호입니다.

 

 

.dockerignore

 

dockerignore 파일 생성시 Docker 이미지 생성 시 이미지안에 들어가지 않을 파일을 지정 할 수 있습니다.

 

$ vim dockerignore

 

node_modules

npm-debug.log

Dockerfile*

docker-compose*

.dockerignore

.git

.gitignore

README.md

LICENSE

.vscode

 

 

:wq!

 

작성 된 Docker File로 Image 만들기

 

$ docker build -t [만들고싶은 이미지 이름] 

 

 

해당 명령어는 반드시 DockerFile 경로에서 입력해야 합니다.

[출처] https://khj93.tistory.com/entry/Docker-Docker-File-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0-%EB%AA%85%EB%A0%B9%EC%96%B4

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
32 [docker] [Docker] 도커 이미지와 컨테이너 삭제 방법 졸리운_곰 2024.08.20 350
31 [docker] [Oracle] docker에 Oracle 11g 설치하기 file 졸리운_곰 2022.11.26 476
30 [docker][도커] 로컬 개발환경 Docker 사용하기 file 졸리운_곰 2021.10.16 414
29 [Docker][도커] docker 이미지 및 컨테이너 관리 명령어 정리 file 졸리운_곰 2021.08.29 371
28 [docker][도커] 컨테이너 시작, 중지, 재시작 졸리운_곰 2021.08.29 253
27 [DOCKER] 도커_컨테이너 생성, 시작, 정지 file 졸리운_곰 2021.08.15 306
26 [쿠버네티스][Kubernetes] Helm 사용법 file 졸리운_곰 2021.07.19 331
25 [MSA][Docker][Kubernetes] [Kubernetes] 윈도우10에 도커, 쿠버네티스 설치 (docker desktop) file 졸리운_곰 2021.05.23 370
» [MSA] [Docker] Docker File을 이용하여 Docker Image만들기 file 졸리운_곰 2021.04.27 299
23 [MSA][Docker] Docker 개념, 관리, 이미지생성까지 한번에!! file 졸리운_곰 2021.04.27 506
22 [MSA] 서비스 경량화를 위한 MSA 설계 시 고려사항 file 졸리운_곰 2021.03.21 301
21 [MSA][Docker] 효율적인 도커 이미지 만들기 #2 - 도커 레이어 캐슁을 통한 빌드/배포 속도 높이기 file 졸리운_곰 2021.03.21 292
20 [MSA][Docker] 효율적인 도커 이미지 만들기 #1 - 작은 도커 이미지 file 졸리운_곰 2021.03.21 257
19 [MSA] 오픈소스 모니터링 툴 - Prometheus #3 그라파나를 이용한 시각화 file 졸리운_곰 2021.03.21 603
18 [MSA] 오픈소스 모니터링 툴 - Prometheus #2 Hello Prometheus file 졸리운_곰 2021.03.21 464
17 [MSA] 오픈소스 모니터링툴 - Prometheus #1 기본 개념과 구조 file 졸리운_곰 2021.03.21 434
16 [MSA] API 게이트 웨이 & Google Cloud Endpoints file 졸리운_곰 2021.03.21 398
15 [MSA] Kong API gateway #3 - Kong on Kubernetes file 졸리운_곰 2021.03.21 441
14 [MSA] Kong API gateway #2 - 간단한 아키텍쳐와 API 테스트 file 졸리운_곰 2021.03.21 515
13 [MSA] Kong API gateway #1 - 설치와 둘러보기 file 졸리운_곰 2021.03.21 509
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED