본문 바로가기

프로젝트 설정/Docker

[Docke] DockerFile로 build하기 (image 만들기)

반응형

test를 하느라 run을 하는데 명령어를 그때그때마다 다 쓰기가 힘든 경우가 있으며

여러 사람이 각자의 환경에서 run을 하는 경우 run의 옵션등을 누락하여 환경이 달라질 수 있다.

run을 할때마다 옵션을 계속 쓰지 않고 파일 관리하여 빠르고 쉽게 시작하고 관리할 수 있는것이 DockerFile인줄 알았는데 아니더라.. 

>> 이쪽은 Docker-compose가 더 가깝다.

>> docker run script로 시작하기 (docker run 명령어 기억하기 / docker run 재사용)

 

Docker Build (image 생성)를 위한 DockerFile에 대하여 알아보자.

다중 컨테이너 관련해서는 Docker-compose를 확인하자.

 

dockerFile과 docker-compose.yml 의 차이점

 

dockerFile과 docker-compose.yml 의 차이점

도커를 공부하다보니 궁금한 점이 생겼다. 원하는 어플리케이션을 도커에 띄울 때 dockerFile을 사용하기도 하고 docker-compose.yml을 사용하기도 한 다. 왜 둘이 분리해놓은 것일까? 다른 점은 무엇일

velog.io

 

1. 주의 사항

Dockerfile 기반으로 빌드시 하위 디렉터리에서 진행하며, 불필요한 파일을 포함하지 않도록 해주세요.

 

https://docs.docker.com/engine/reference/builder/

 

Dockerfile reference

 

docs.docker.com

2. Dockerfile 구문 및 옵션

그러면 본격적으로 Dockerfile를 작성해보도록 하겠습니다.

Dockerfile은 텍스트 형식이며, 파일명 또한 "Dockerfile" 입니다. 확장자는 따로 존재하지 않습니다.

아래 내용은 Dockerfile에 작성되는 명령 옵션 입니다.

  • FROM : Docker Base Image (기반이 되는 이미지, <이미지 이름>:<태그> 형식으로 설정)
  • MAINTAINER : 메인테이너 정보 (작성자 정보)
  • RUN : Shell Script 또는 명령을 실행
  • CMD : 컨테이너가 실행되었을 때 명령이 실행
  • LABEL : 라벨 작성 (docker inspect 명령으로 label 확인할 수 있습니다.)
  • EXPOSE : 호스트와 연결할 포트 번호를 설정한다.
  • ENV : 환경변수 설정
  • ADD : 파일 / 디렉터리 추가
  • COPY : 파일 복사
  • ENTRYPOINT : 컨테이너가 시작되었을 때 스크립트 실행
  • VOLUME : 볼륨 마운트
  • USER : 명령 실행할 사용자 권한 지정
  • WORKDIR : "RUN", "CMD", "ENTRYPOINT" 명령이 실행될 작업 디렉터리
  • ARG : Dockerfile 내부 변수
  • ONBUILD : 다른 이미지의 Base Image로 쓰이는 경우 실행될 명령 수행
  • SHELL : Default Shell 지정

3. Docker File 예제

Simple

# DockerFile
FROM ubuntu:16.0.4
ENTRYPOINT [bash]

 

 

 

 

 

참고 사이트

더보기

 

반응형