728x90
0. docker 설치
docker을 실행시켜줘야 docker 명령어 사용 가능
1. Dockerfile 생성
pip list 명령어를 통해 설치된 라이브러리 버전 확인
pip list
requirements.txt에 필요한 라이브러리 및 버전 작성 (이후, pip install -r requirements.txt를 통해 해당 라이브러리들이 자동적으로 설치되게 함)
django==3.2.7
pymysql==1.0.2
pandas==1.2.1
FROM python:3.9.1
WORKDIR /web
COPY . .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
2. docker build . 명령어를 통해 작성한 Dockerfile를 이용해서 이미지를 빌드
docker build . -t <생성될 이미지의 이름>
- docker build <옵션> <Dockerfile 경로> 형식
- build 다음에 적혀진 . 는 Dockerfile이 존재하는 위치를 나타낸다
- --tag 옵션으로 이미지 이름과 태그를 설정할 수 있으며, 이미지 이름만 설정하면 태그는 latest로 설정된다
- 마지막에 Successfully built <이미지ID> 혹은 writing image <이미지ID>가 출력되었다면 제대로 이미지가 빌드가 된 것이다
예시 )
writing image sha256:0a38b914e2cb4a0588eeb4a445e629e681a22de7855b0
naming to docker.io/library/<설정한 이미지의 이름>
3. 생성된 이미지가 로컬에 잘 저장되어 있는지 확인
$ docker images
도커 이미지 컨테이너로 실행
$ docker run -p 8000:8000 -tid <설정한 이미지 이름>
-p 8000:8000 옵션은 로컬 PC의 8000번 포트를 컨테이너의 8000번 포트에 연결한다는 의미
컨테이너가 정상 동작 중인지 확인
$ docker ps
STATUS가 UP 상태이면 정상 동작 중
4. docker-compose.yml 파일 작성
- Docker Compose는 여러 개의 서비스를 이뤄진 애플리케이션을 하나의 YAML 파일에 정의할 수 있도록 해준다.
- Django 프로젝트는 Django 애플리케이션과 PostgreSQL 데이터베이스 2가지 서비스로 이루어져 있기 때문에 docker-compose.yml 파일을 작성해 애플리케이션을 정의해주어야 한다.
- 프로젝트 최상위 디렉터리에 docker-compose.yml을 생성하고, Django 애플리케이션의 db 서비스로 PostgreSQL 데이터베이스를 정의해준다.
참고사이트
반응형