Docker 커밋과 빌드의 차이점

2star_·2024년 12월 7일

Docker

목록 보기
3/6

container에서 imagecommit 하는 것과, Dockerfile에서 imagebuild하는 것의 차이는 뭘까!?

커밋은 이미 사용하고있는 컨테이너가 있을때 그 컨테이너를 이미지로 만드는 백업과 같은 느낌이라면
빌드는 도커 파일을 통해서 만들고 싶은 이미지를 구체적으로 시간의 순서에 따라서 기록해서 만드는 이미지를 생성하는 느낌!

즉 커밋은 백업, 빌드는 생성 결과는 이미지 생성이라는 점은 똑같다!

이제 빌드를 자세히 알아보고 커밋을 간략히 알아보자


(출처 - 생활코딩 유튜브)

웹서버 이미지를 만들고 싶다

먼저 커밋으로 해보고 빌드로 완성해 보자!

VS code 터미널에서도 정상적으로 작동이 된다.!

Docker Extension Pack을 설치하면 시각적으로 잘 보여줄 수 있다. <그림 왼쪽 화면 참고>

docker run --name web-server -it ubuntu:20.04

위 명령어로 ubuntu 20.04버전을 실행하고 이름은 web-server , -it로 실행과 동시해 작업을 할 수 있는 상태로 만들었다.

터미널을 분할하고 docker commit을 입력하면 친절하게 아래와 같이 설명해준다.

Usage를 잘 살펴보고 해당하는 명령어를 입력한 다음 commit한 이미지들을 살펴보자.


확장자에도 web-server-commit이 잘 들어간 것을 확인 할 수 있고

docker images명령어를 통해서도 image추가된 것을 볼 수 있다.


앞에서 commit을 통해 image를 백업? 한 것을 실습해봤다. 이번엔 Dockerfile을 이용해서 img를 생성해보자.

경로 폴더에 Dockerfile이라는 파일명을 만드니 고래모양이 뜨면서 뭔가 되는거 같다?

ubuntu를 깔고 연결을 시켰기 때문에 터미널에서 docker명령어를 사용하면 바로 bash-Docker로 지정이 된다.!

해당 폴더에 app.py를 하나 만들고

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, Docker World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0')

Dockerfile에는


# 기본 이미지 설정
# Python 3.8을 쓸건데, 가장 가벼운 이미지로 골라줘
FROM python:3.8-slim

# 애플리케이션 파일 복사
COPY app.py /app.py

# Flask 설치
RUN pip install Flask

# 애플리케이션 실행
# RUN과 CMD의 차이 RUN은 그냥 돌리는거, CMD는 형식이 정해져있을때
CMD ["python", "/app.py"]

위와같은 코드를 넣어준다.!

터미널에서

docker build -t flask-app .
docker run -d -p 5000:5000 flask-app

명령어들을 입력해주면

이렇게 빌드가 잘 되고 container를 실행한 것도 확인 할 수 있다.


이렇게 dockercommitbuild에 대해서 차이점을 알아보고 실습을 진행하며 이해를 해봤다.!!


추가로 어제 특강시간에 ubuntu를 사용하여

nano app 으로 접속해서

위와 같은 과정을 통해 build시키고 run하는것도 봤다.

profile
안녕하세요.

0개의 댓글