django에 대한 도커 컨테이너와 nginx에 대한 도커 컨테이너를 만들어서
그 두개의 도커 컨테이너를 한번에 실행시키는 docker compose파일을 만들어서 실행할 계획이다.
이번 시간엔 django에 대해 도커 컨테이너를 하나 만들어보자
일단 ubuntu 20.04버전의 ec2를 하나 생성한다.
그리고 접속해서 rsa 키를 만들어서 git clone으로 프로젝트를 다운받는다.(다운 받을 때 .ssh파일에 다운받으면 파일이 안보이니까 cd 쳐서 기본 바탕화면에 다운받자)
다운 받은 프로젝트의 requirements.txt 파일에 uwsgi를 추가한다.
curl -fsSL https://get.docker.com/ | sudo sh 명령어를 입력한다.
다운이 완료되면 sudo usermod -aG docker $USER 명령어를 입력해서 도커의 권한을 설정해준다.
그리고 putty를 껏다가 다시 접속하자
그리고 vi Dockerfile 명령어를 입력한다.
Dockerfile에는
아래와 같은 코드를 입력한다.
FROM python:3.6.7
ENV PYTHONUNBUFFERED 1
RUN apt-get -y update
RUN apt-get -y install vim
RUN mkdir /srv/docker-django
ADD . /srv/docker-django
WORKDIR /srv/docker-django
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
그리고 docker build -t docker/django . 명령어로 도커 이미지를 만든다.
그 후 docker image list 명령어를 이용해서 실행중인 이미지 리스트를 볼 수 있다.
마지막으로 docker run -p 8000:8000 docker/django 명령어로 도커로 이미지를 실행시킨다.
지금 현재 상태로 ec2 이미지를 만들어 배포하면 각 인스턴스에 접속해 docker run -p 8000:8000 docker/django 명령어를 입력해야 한다.
이를 하지 않고도 자동으로 배포하기 위해 다음에는 nginx를 활용해보겠다.
위 과정의 순서를 요약하면 다음과 같다.
1. ssh-keygen -t rsa, cd .ssh, ls, cat id_rsa.pub, ssh-keygen -t rsa -C "깃허브이메일주소", ls -al ~/.ssh, cat ~/.ssh/id_rsa.pub
2. mkdir docker-django
3. cd docker-django
4. git clone git@github.com:chlghgus10/fastcampus_test.git
5. cd fastcampus_test
6. vi requirements.txt
asgiref==3.2.7
Django==3.0.5
pytz==2019.3
sqlparse==0.3.1
uwsgi
7. curl -fsSL https://get.docker.com/ | sudo sh
8. sudo usermod -aG docker $USER
9. docekr -V(OFF AND ON)
10. vi Dockerfile
FROM python:3.6.7
ENV PYTHONUNBUFFERED 1
RUN apt-get -y update
RUN apt-get -y install vim
RUN mkdir /srv/docker-django
ADD . /srv/docker-django
WORKDIR /srv/docker-django
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
11. docker build -t docker/django .
12. docker image list
13. docker run -p 8000:8000 docker/django
'AWS > Part 2. Ch03 중규모 아키텍트' 카테고리의 다른 글
CH03_09 AWS CLI 개요 (0) | 2022.04.29 |
---|---|
CH03_08 AWS Fargate을 통한 배포 (0) | 2022.04.28 |
CH03_07 AWS ECR에 컨테이너 업로드 (0) | 2022.04.28 |
CH03_06 Docker-Compose를 활용한 배포 (0) | 2022.04.28 |
CH03_05 Nginx Docker Build (0) | 2022.04.27 |