Image 만드는 두가지 방법

Untitled

commit과 build의 차이점

  1. commit은 이미 사용하고 있는 container가 있을때 그 컨테이너를 이미지로 만드는 백업과 같은 개념
  2. build는 dockerfile을 이용해서 이미지를 구체적으로 시간의 순서에 따라 기록해서 이미지를 생성하는 개념

예상 시나리오

우리는 도커 이미지를 만든건데 그 이미지에는 웹서버가 설치되어 있어서 언제든 run 명령어로 컨테이너를 만들면 바로바로 사용할 수 있는 웹서버 이미지 만들고 싶다.

실습

  1. Dockerfile 내용
FROM ubuntu:20.04
  1. 터미널
    1. . : 현재 디렉토리에 dockerfile이 있고 이미지를 만들때 사용할 파일이 현재 위치에 위치시키기 위함
# Dockerfile 있는 경로에서 실행
docker build -t web-server-build .
  1. 컨테이너 안에서 python3 설치
    1. python3 안에 웹서버가 내장되어있기 때문에 python3 설치
  2. 컨테이너 내부에서 명령어 실행을 위한 Dockerfile 수정
    1. 아래 명령어 실행을 의미

      apt update
      apt install python3
      
    2. Dockerfile 내용

      1. RUN 명령어를 실행시킬때마다 레이어라는게 생성해서 가급적 한줄로 작성
      2. -y: 설치 할때 중간에 y/n 입력하게 하는 명령어 있을때 자동으로 y 입력하게 하는 옵션
      FROM ubuntu:20.04
      #RUN apt update
      #RUN apt install python3
      RUN apt update && apt install -y python3
      
    3. 내가 만든 웹서버가 사용자 요청 들어왔을때 그 요청을 /var/www/html에서 찾게하고싶을때, /var/www/html경로를 생성해야함

      • 원래 terminal cli 명령어
      1. /var/www/html 경로가 없으면 생성해주고 디렉토리 이동을 전부 포함하는 내용
      2. 앞으로 실행할 RUN, 엔트리포인트 , cmd 명령어 실행할때 cd /var/www/html 경로에서 실행
      WORKDIR /var/www/html