이미지 만들기
- Dockerfile: configuration 파일
- base image를 특정하고,
- 몇 가지 프로그램들을 추가하고,
- startup을 위해 실행 커맨드를 특정한다.
# Use an existing docker image as a base
FROM alpine
# Download and install a dependency
RUN apk add --update redis
# Tell the image what to do when it starts as a container
CMD ["redis-server"]
- instruction: docker server에게 지시하는 명령어
- FROM: base image 특정
- 각 인스트럭션에는 intermediate container라는 것이 존재.
- 인스트럭션이 끝날 때마다 임시 이미지를 생성하고, 해당 이미지로부터 중간 컨테이너를 띄우고, 스냅샷을 통해 새로운 임시 이미지를 다시 만드는 것을 반복함.
- build 과정에서, docker server는 캐시를 적극적으로 사용함.
- 만약 Dockerfile을 수정할 일이 있다면, 인스트럭션을 뒤로 빼야 퍼포먼스를 늘릴 수 있음.
- 인스트럭션의 순서를 바꾸는 것만으로도 모든 이미지를 다시 빌드해야 하기 때문
-t
플래그를 통해 이미지에 태그를 달 수 있음.
- e.g.
-t syjn99/redis:latest