리눅스데브코스 [16주차 - 2]<리눅스 컨테이너와 Docker (4) 실습>

심우열·2023년 7월 18일
0

Django 사용하기 위한 설정을 DOCKERFILE로 만들기

1. Django 애플리케이션 이미지 구축

1. 파이썬 이미지 탐색

1. Docker Hub

DockerHub - Python

docker search python

2. Docker 를 이용한 준비

docker run -it --name django-prepare -p 8000:8000 python:3.8-bullseye

3. Django 준비

1. Django-prepare 컨테이너 접속

새로운 터미널 창에서

docker exec -it django-prepare /bin/bash

2. Django 패키지 설치

pip install django

3. Django module 실행

django-admin
# OR
python -m django

4. Django Project Template 생성

python -m django startproject mysite
cd mysite
ls

5. mysite/mysite 디렉토리

mystie 프로젝트의 장고 웹 서버 설정이 있는 디렉토리

2. Application 개발

1. application 생성

python manage.py startapp polls

2. 서버 생성

1."mysite/" 디렉토리로 이동

manage.py 파일이 있는 디렉토리

2. 서버 생성

python manage.py runserver 0.0.0.0:8000

  • 0.0.0.0: 서버로 사용할 인터페이스 주소
    -> 0.0.0.0이면, 현재 컴퓨터에 연결된 모든 네트워크 인터페이스에서 접속할 수 있음
  • 혼자 개발할때는?
    ->127.0.0.1 사용 권장, 내 컴퓨터에서만 접속 가능하도록 함
  • 8000: 포트 번호

3. 서버 접속

http://localhost:8000

관리페이지 접속

http://localhost:8000/admin

3. 데이터베이스 준비

새로운 터미널 또는 서버를 중단한 후 실행

  • manage.py 가 있는 곳에서 !!
python manage.py migrate
ls

db.sqlite3 확인

4. 관리자 계정 생성

새로운 터미널 또는 서버를 중단한 후 실행

  • manage.py 가 있는 곳에서 !!
python manage.py createsuperuser

5. 관리페이지 접속

1. 다시 서버 실행하기

python manage.py runserver 0.0.0.0:8000

2. 관리페이지에 접속해서 로그인

3. 준비한 이미지 저장하기

1. 다른 터미널 접속해서 이미지 커밋하기

docker commit django-prepare

2. 출력된 HASHID 이미지를 태그로 저장

docker tag <sha256:..HASHID..> w10sim/django/mysite:4.2.4

3. 생성된 Django-prepare 컨테이너 이미지 확인

docker image list

4. 위의 과정을 DOCKERFILE로 만들기

1. Dockerfile

FROM python:3.8-bullseye

MAINTAINER w10sim <w10sim@naver.com>

RUN mkdir /data; cd /data;
RUN pip install Django==3.2.5; python -m django startproject mysite;

WORKDIR /mysite
RUN python manage.py startapp polls; python manage.py migrate --noinput;

CMD python manage.py runserver 0.0.0.0:8000
EXPOSE 8000

2. Docker 이미지 생성

docker build -t w10sim/django-prepare:1 .

이미지 확인

docker image list

3. 생성된 Docker 이미지 실행해보기

docker run -it w10sim/django-prepare:3

profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

가치 있는 정보 공유해주셔서 감사합니다.

답글 달기