이전에는 Flask에서 Docker를 연습해보는 시간을 가졌었는데, 이번에는 Django에서 Docker를 사용해보는 것을 연습해보도록 하겠다.
우선 Dockerfile에서 설정을 해준 뒤 Docker Image를 등록하기 위해 'docker build' 명령어를 통해 Docker Image를 만들어주기로 하였다.


명령어를 적어준 뒤 터미널을 보면 정상적으로 Docker Image가 build 되었으나 다음 문구가 뜨는 것을 확인할 수 있었다.
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
FROM 부분에서 alpine을 사용하고 있기 때문에 다음 명령어를 사용하여 해당 메시지로 뜬 문제를 해결하고자 하였다.
$ docker scan alpine
만약 해당 명령어를 적어도 문제가 해결되지 않는다면 Docker Desktop에 Docker Hub 로그인이 되어있는지 확인을 해주도록 하자.

위 사진은 맨 처음 생성했던 Image 삭제 후 다시 생성한 모습이다.
이후 docker compose를 사용하여 yaml 파일 내에 필요한 옵션들을 설정하고 container를 실행해보고자 하였다.
그전에 우선적으로 container를 생성해주기로 하였다.
다음 명령어를 사용하여 Docker Container를 생성해주었다.
Window에서 사용한 명령어
$ docker run -dp 8000:8000 `
> -w /usr/src/app -v "$(pwd):/usr/src/app" `
> [image_name] `
> sh -c "python manage.py runserver 0.0.0.0:8000"
이제 해당 컨테이너가 제대로 생성됐는지 확인을 해주었다.

-d 옵션과 -p 옵션을 사용하여 설정을 해줬기 때문에 백그라운드 실행이 되고 있으며 8000 포트로 연결되어 있는 것을 볼 수 있었다.
이제 docker compose 설정을 해주기로 하였다.

yaml 파일 내에 해당 내용을 적어준 뒤 'docker-compose build' 명령어를 통해 해당 compose를 빌드해주었다.
이제 다음으로 연결된 Container가 제대로 실행되는지 확인하기 위해 Django 웹 페이지 링크를 적어서 확인해주었다.

정상적으로 실행되는 것을 확인하였으니 마지막으로 Docker Hub에 해당 Docker Image를 push 해보기로 하였다.

Docker Hub에 push 하는 방법으로는 다음과 같이 적어주었다.
docker tag 생성하기
> docker tag [image_name] [dockerhub_username]/[image_name]
docker hub push 하기
> docker push [dockerhub_username]/[image_name]
그러면 push 하고자 하는 파일들이 하나둘씩 올라가게 되고 성공적으로 push가 된다면 Docker Hub에 등록되는 것을 볼 수 있었다.

'개발 > Docker' 카테고리의 다른 글
| [Docker] Django 프로젝트를 EC2에 Docker 적용하기 (0) | 2022.08.09 |
|---|---|
| [Docker] Docker 사용해보기 (0) | 2022.08.08 |