아래 내용은 인프런 강의 초보를 위한 도커 안내서를 정리한 내용입니다.
commit 으로 하는 방식과 build하는 방식으로 이미지를 생성할 수 있음
도커는 레이어드 파일 시스템 기반임
이미지는 프로세스가 실행되는 파일의 집합(환경)
프로세스는 환경(파일)을 변경할 수 있음
이 환경을 저장해서 새로운 이미지를 만듬
이미지는 읽기 전용 VS 쓰기 전용 이 두가지로 나뉨
베이스 이미지에 깃을 추가해서 새로운 커스텀 이미지를 만들 수 있음
도커 이미지 네이밍 규칙
docker build -t mysname/ubuntu:airflow
docker run -it --name git ubuntu:latest bash
# apt-get update
# apt-get install -y git
# git --version
docker images | grep ubuntu
docker commit git ubuntu:git
docker images | grep ubuntu
서버에 직접 입력하는 과정을 하나의 파일로 관리
build로 생성하는 도커 이미지를 만들기
도커파일 명령어
FROM | 기본 이미지 |
---|---|
RUN | 쉘 명령어 실행 |
CMD | 컨테이너 기본 실행 명령어(Entrypoint의 인자로 사용) |
EXPOSE | 오픈되는 포트 정보 |
ENV | 환경변수 설정 |
ADD | 파일 또는 디렉토리 추가. URL/ZIP 사용가능 |
COPY | 파일 또는 디렉토리 추가 |
ENTRYPOINT | 컨테이너 기본 실행 명령어 |
VOLUMNE | 외부 마운트 포인트 생성 |
USER | RUN, CMD, ENTRYPOINT를 실행하는 사용자 |
WORKDIR | 작업 디렉토리 설정 |
ARGS | 빌드타임 환경변수 생성 |
LABEL | key-value 데이터 |
ONBUILD | 다른 빌드의 베이스로 사용될 떄 사용하는 명령어 |
# docker build -t {이미지명:이미지태그} {빌드 컨텍스트}
docker build -t sample:1
-f
<Dockerfile 위치> 옵션을 사용하여 다른 위치의 도커 파일 사용 가능-t
명령어로 도커 이미지 이름을 지정함.gitignore
과 비슷한 역할.git
이나 민감한 정보를 제외하는 용도로 주로 사용.git
이나 에셋 디렉터리만 제외시켜도 빌드 속도 개선FROM ubuntu:latest # 이미지명을
RUN apt-get update #
RUN apt-get install -y git #
docker build -t ubuntu:git-dockerfile .
docker images | grep ubuntu