Docker - Dockerfile

Docker

정의

Container를 만들 수 있도록 도와주는 명령어의 집합이며, 파일명은 반드시 Dockerfile 이어야한다.

  • 쉽고, 간단하고 명확한 구문을 가진 text file이며, Top-Down으로 해석을 한다.

  • 컨테이너 이미지를 생성할 수 있는 고유의 Instruction을 가진다.

  • 대소문자를 구분하지는 않지만 가독성을 위해 지시어대문자로 사용한다.


지시어

지시어 설명
FROM 가장 먼저 작성해야하며, 운영환경(base image)을 의미한다
MAINTAINER 이미지를 생성한 사람의 이름 및 정보
LABEL 이미지에 컨테이너의 정보를 저장
RUN 빌드를 위해 base image에서 실행할 commands
COPY 빌드하는 시점에 HOST의 파일을 컨테이너로 복사한다
ADD 빌드하는 시점에 HOST의 파일(url, tar 포함)을 컨테이너로 복사한다
WORKDIR 컨테이너 빌드 시 명령이 실행될 작업 디렉터리 설정
ENV 환경변수 지정
USER 명령 및 컨테이너 실행 시 적용할 유저 설정 (root가 아닌 시스템 계정을 만들어서 실행할 수 있다)
VOLUME 컨테이너가 동작할 때 파일 또는 디렉토리를 컨데이너의 디렉토리로 마운트(데이터가 저장될 장소)
EXPOSE 컨테이너 동작 시 외부에서 사용할 포트 지정
CMD 컨테이너 동작 시 자동으로 실행할 서비스나 스크립트 지정, 동작 시 변환이 가능하다.
ENTRYPOINT CMD와 함께 사용하면서 command 지정 시 사용, 명령어를 변환할 수 없다.
기타 CMD와 ENTRYPOINT를 같이 쓰일 때는 ENTRYPOINT에 명령어, CMD에 args, option을 넣어 사용한다

빌드 및 배포

1. 빌드

docker build -t [컨테이너이름] [build할 파일이 있는 디렉토]
- docker build -t hellojs:latest .

2. 로그인

docker login

3. 배포

docker push [컨테이너이름]

Author

Inwoo Jeong

Posted on

2022-01-13

Updated on

2022-01-13

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

댓글