이미지를 만드는 방법은 commit, build 두 가지이다. 결과는 이미지를 만든다는 점에서 같지만 그 과정은 다르다.
docker commit {container 명} {만들어질 image 명}
docker build -t {만들어질 이미지 명} {Dockerfile}이 있는 경로
# -t : 만들어진 이미지 명(tag)을 줄 수 있는 옵션
docker build -t web-server-build .
# . 경로의 Dockerfile을 web-server-build라는 이름으로 이미지를 만들어라
FROM ubuntu:20.04
RUN apt update && apt install -y python3
WORKDIR /var/www/html
CMD ["python3", "-u", "-m", "http.server"]
# RUN에서 &&는 앞에 명령어가 실행되고 끝나면 그 뒤의 명령어가 실행된다.
# && 쓰는 대신 줄바뀜하고 RUN을 쓰고 명령어를 작성해도 되지만 Layer가 하나가 더 생성되는 것은 비효율적이다.
# 그러므로 가능하면 RUN을 여러 번 쓰는 것 보단 &&을 사용하는 것이 바람직하다.
FROM: 어떤 언어, OS를 기반으로 image를 만들 것인지 작성하는 곳
RUN: 컨테이너가 만들어지기 전 단계에서 실행되는 명령어를 작성하는 곳
WOROKDIR: 작업이 진행 될 경로를 작성하는 곳
CMD: 컨테이너가 만들어진 이후에 실행되는 명령어를 작성하는 곳