본문 바로가기
Docker

3. docekr 기초 (2)

by 프잘백 2022. 3. 17.
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 이미지를 닫고 새로 실행하면 정상적으로 업데이트 된 것을 확인할 수 있다.

'Docker' 카테고리의 다른 글

6. Docker network  (0) 2022.03.17
5. Docker container 데이터 유지  (0) 2022.03.17
4. docker 기초(3) 공유하기  (0) 2022.03.17
2. docker 기초 (1) 문법/조작  (0) 2022.03.16
1. Docker?  (0) 2022.02.16

댓글