Docker

3. docekr 기초 (2)

프잘백 2022. 3. 17. 00:27
728x90

 

 

도커로 간단한 어플리케이션을 실행해보자.

먼저 아래와 같은 구조의 간단한 앱을 만들고 Dockerfile을 만들어 준다.

 

Dockerfile 내용은 다음과 같다.

FROM python:3.8

ADD requirements.txt .

RUN pip install -r requirements.txt

ADD templates templates

ADD app.py .

CMD ["python", "app.py"]

 

 

  • FROM : docker가 이미지를 생성할 때 사용할 base image를 말한다.

 => cmd에 docker run -it python:3.8 이라고 입력하면 Docker 허브에서 해당 이미지를 다운받아온다.

 

  • ADD src dst : 호스트 머신에 있는 파일이나 폴더를 dst라는 위치에 저장한다.
  • RUN script : script를 실행한다.
  • CMD : 생성된 image를 실행할 때 자동으로 실행되는 커맨드

 

터미널에서 docker build . 을 입력하면 아래와 같이 docker image가 생성된다.

// scan은 이미지에 보안 결함이 있는지 확인하는 명령어이다.

docker build -t [원하는태그명] 으로 태그를 설정할 수 있다.

docker build --help로 옵션 확인!

 

 

docker image는 레이어라는 개념이 존재한다.

docker history를 입력하면

다음과 같이 이미지가 생성되는걸 알 수 있다.

docker 이미지가 생성될 때는 base image가 먼저 생기고 명령어가 실행 될 때마다 레이어가 하나씩 생긴다.


docker 이미지 실행

docker run -d -p 5000:5000 [도커태그네임] 을 입력하면 생성된 도커이미지를 실행할 수 있다.(5000은 포트)

docker ps 를 입력해서 해당 앱이 실행된 것을 확인할 수 있다.

그 후 localhost의 해당 포트에 접속하면 된다.


docker 이미지 업데이트

 

docker이미지는 한번 생성된 후 바뀌지 않는게 일반적이다. 그러므로 이미 생성되어 있는 이미지 위에 덮어쓰는 것은 좋지 않다. 그래서 새로운 태그로 도커를 build하는것이 좋다. 

기존에 열었던 docker 이미지를 닫고 새로 실행하면 정상적으로 업데이트 된 것을 확인할 수 있다.