- Dockerfile 은 docker 이미지를 작성할 수 있는 기능
Dockerfile 문법으로 이미지 생성을 위한 스크립트를 작성. 이를 기반으로 이미지를 생성.
나만의 이미지를 생성할 수 있어 배포로 많이 활용 된다.
| 명령 | 설명 |
|---|---|
| FROM | 베이스가 되는 이미지 지정 (ex> FROM ubuntu) |
| LABEL | 버전 정보, 작성자와 같은 이미지 설명을 작성 |
| EXPOSE | docker 컨테이너 외부에 오픈 할 포트 설정 (ex> EXPORT 8080) |
| CMD | docker 컨테이너가 시작할 때 실행하는 쉘 명령을 지정 |
| ENTRYPOINT | docker 컨테이너가 시작할 때 실행하는 쉘 명령을 지정. docker run 커멘트 실행시 별도 명령어도 넣을 수 있는데, 이때 CMD 명령은 해당 명령으로 덮어씌워진다. |
| RUN | 쉘 명령을 실행하는 명령, RUN은 이미지 작성시 실행되며, 일종의 이미지에 패키지를 추가, 작업 추가 |
| ENV | docker 컨테이너 내부에서 사용 할 환경 변수 지정 |
| WORKDIR | docker 컨테이너에서의 작업 디렉토리 설정 |
| COPY | 파일 또는 디렉토리를 docker 컨테이너에 복사. ADD 와 달리 URL은 지정할 수 없고 압축 파일을 자동으로 풀어주지 않음 |
| 명령 | 설명 |
|---|---|
| USER | docker 이미지 및 컨테이너에서 작업 하는 사용자 ID를 지정 |
| SHELL | 쉘 프로그램 지정 명령. CMD 등으로 대체 가능 |
| ONBUILD | 생성한 이미지를 기반으로, 새로운 이미지를 생성시 실행하는 명령을 지정 |
| VOLUME | 이미지를 위한 볼륨 생성 |
| ADD | 파일, 디렉토리, 특정 URL의 데이터를 docker 이미지에 추가. 추가 할 파일이 압축 파일인 경우 자동으로 풀어주기 때문에 조심. 동일한 이름의 파일 또는 디렉토리가 있을 경우 덮어 씌우지 않음. |
| ARG | Dockerfile 내부에서 필요한 변수 설정 |
| # | 주석 |
- docker build 명령
docker build {option} Dockerfile {path}
| 옵션 | 설명 |
|---|---|
| -t --tag | 이미지 이름 설정. TAG(버전)를 설정하기 위해서는 -t IMGNAME:1.1 로 붙여야 TAG에 1.1로 설정됨. 설정 하지 않는 경우 이미지의 latest가 default로 붙는다. |
| -f | 빌드시 default로 'Dockerfile'을 찾아 빌드하는데 이 이름을 변경 |
| --pull | --pull=true 형태로 활용.새로 다운로드 받으라는 옵션 |
- Dockerfile build test
- Dockerfile을 저장한 경로에 들어가서 명령
- Dockerfile이 있는 경로와 똑같기 때문에 path는{. or ./}로 한다
- --tag test_ubuntu 는 이미지 이름을 test_ubuntu로 설정
- -f 태그 활용으로 Dockerfile -> test_dockerfile 변경
docker build --tag test_ubuntu -f test_dockerfile ./