이제 docker build 명령을 실행하면, 도커 데몬은 Dockerfile의 내용을 한줄씩 실행해서 그 결과를 새 이미지로 commit 하며, 최종적으로 새로운 이미지 ID를 출력한다.
가능하다면, 도커는 중간 이미지를 캐시형태로 저장해서, 도커 빌드 속도를 높인다. 동일한 베이스 이미지를 이용할 경우, 처음 이미지에만 시간이 좀 걸리고, 나머지는 매우 빠르게 만들어질 것이다.
Insruction은 대소문자 구분없이 사용할 수 있다. 명령과 옵션의 구분을 더 명확히 하기 위해서 일반적으로 대문자를 사용한다.
도커는 Dockerfile을 읽어서 instruction이 지시하는 내용을 실행한다. Dockerfile의 가장 처음에는 반드시 FROM이 와야 한다. 이 지시어는 새로운 이미지를 만들기 위한 Base Image를 설정하기 위해서 사용한다. 예를 들어 ubuntu를 베이스 이미지로 하고 싶다면 FROM ubuntu라고 명시해야 한다.
#은 주석이다. 주석 표시된 영역은 해석하지 않고 넘어간다.
FROM은 베이스 이미지(Base image)를 설정하기 위해서 사용한다. 도커 데몬은 여기에 설정된 이미지로 부터 새로운 이미지를 만든다. 만약 로컬에 베이스 이미지가 없다면, 이미지 저장소로 부터 풀링한다. FROM은 반드시 Dockerfile의 첫 줄에 와야 한다. tag는 옵션이다. tag를 생략하면 latest를 가져온다.
라벨은 키-값 쌍으로 이루어지며, 이미지에 추가적인 정보를 설정한다. 이미지는 하나 이상의 라벨을 가질 수 있는다. 컨테이너가 만들어지면 이 정보도 읽을 수 있는데, 외부 프로그램이 읽어서 추가적인 작업을 할 때 특히 유용하게 사용 할 수 있다. Traefik 같은 로드밸런서의 경우 LABEL을 읽어서, 로드밸런서 룰을 설정한다.
EXPOSE는 컨테이너가 만들어질 때, 설정된 포트(PORT)로 바인드 한다는 것을 알려준다. EXPOST를 한다고 해서 컨테이너의 포트에 접근 할 수 있다는 것은 아니다. 이를 수행하려면, -p 플래그를 이용해서 특정 포트를 공개하거나 혹은 -P 플래그를 이용해서 모든 포트를 공개해야 한다.
Contents
1. DockerFile
2. DockerFile로 부터 이미지 만들기
3. 형식
4. Envirionment Replacement
5. FROM
6. MAINTAINER
7. RUN
8. CMD
9. LABEL
10. EXPOSE
11. ADD
12. COPY
13. ENTRYPOINT
14. Docker 파일 예제
14.1. MongoDB
14.2. Mysql-Server
14.3. 한글 설정
15. 참고
1. DockerFile
2. DockerFile로 부터 이미지 만들기
3. 형식
4. Envirionment Replacement
5. FROM
6. MAINTAINER
7. RUN
8. CMD
9. LABEL
10. EXPOSE
11. ADD
12. COPY
13. ENTRYPOINT
14. Docker 파일 예제
14.1. MongoDB
14.2. Mysql-Server
14.3. 한글 설정
15. 참고
Recent Posts
Archive Posts
Tags