도커로 간단한 어플리케이션을 실행해보자.
먼저 아래와 같은 구조의 간단한 앱을 만들고 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 |
댓글