본문 바로가기
Web Programming/Server

[AWS EC2] Docker 설치

by 테리는당근을좋아해 2022. 7. 3.

1. EC2에 Docker 설치하기

ssh [EC2 서비스명]

- EC2 서비스 접속

 

sudo yum update -y

- yum 업데이트

 

sudo yum install docker -y​

- docker 설치

 

docker -v

- docker 버전 확인

 

sudo service docker start

- docker 실행

 

 

2. Docker 이미지 생성

pip3 --list=format=freeze > requirements.txt

- requirements.txt 생성

 

FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /web
COPY . .
RUN pip install --upgrate pip
RUN pip install -r requirements.txt

EXPOSE 8000
CMD ["bash", "-c", "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"]

- 프로젝트 루트 리렉토리 위치에 Dockerfile 생성

- Dockerfile은 도커 이미지를 생성하기 위한 DSL(Domain Specific Language)

 

docker login

- docker 접속

 

docker build [옵션] [도커 계정]/[프로젝트명]:[버전] [경로]
docker build .
docker build -t dheldh66/studioapi:0.1.0 .

- build 하면 도커 이미지가 생성된다.

- argument에 들어가는 문자열은 lowercase만 된다..

 

 

* Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects 와 같은 에러가 뜬다면?

backports.zoneinfo==0.2.1

- requirements.txt에 backports.zoneinfo의 version이 0.2.1로 설정되어있다면 아래와 같이 수정해주자

 

backports.zoneinfo==0.2.1;python_version<"3.9"

https://stackoverflow.com/questions/71712258/error-could-not-build-wheels-for-backports-zoneinfo-which-is-required-to-insta

 

ERROR: Could not build wheels for backports.zoneinfo, which is required to install pyproject.toml-based projects

The Heroku Build is returning this error when I'm trying to deploy a Django application for the past few days. The Django Code and File Structure are the same as Django's Official Documentation and

stackoverflow.com

 

docker images

- 명령어를 통해 생성된 이미지를 확인할 수 있고,

 

- 생성된 이미지를 로컬에서 실행해서 Django 버전이 설치되어있는지 확인할 수 있다.

docker run -it [이미지 ID]

 

 

4. 빌드한 이미지 실행시키기

docker run --name [컨테이너명] -d -p [호스트 포트]:[컨테이너 포트] [docker 계정]/[프로젝트명]:[버전]
docker run --name stock01 -d -p 8000:8000 dheldh66/studioapi:0.1.0
docker ps -a

현재 실행되고 있는 프로세스를 조회해서 방금 실행한 이미지가 올라간 컨테이너가 정상적으로 실행되고 있는지 확인 가능하다.

 

 

5. 로컬에서 빌드한 이미지 도커허브로 푸시하기

docker push [도커 계정]/[프로젝트명]:[버전]
docker push dheldh66/studioapi:0.1.0

 

6. EC2에 도커로 배포하기

sudo docker login

- 도커 로그인

 

sudo docker pull [도커 계정]/[프로젝트명]:[버전]
sudo docker pull dheldh66/studioapi:0.1.0

- 도커 허브에서 로컬에서 생성했던 이미지 pull

sudo docker run --name [컨테이너명] -d -p [호스트 포트]:[컨테이너 포트] [도커 계정]/[프로젝트명]:[버전]
sudo docker run --name studioapi1 -d -p 8000:8000 dheldh66/studioapi:0.1.0

이미지 실행

 

 

참고 : https://www.daleseo.com/docker-compose-django/

 

Docker Compose로 Django 프로젝트 셋업

Engineering Blog by Dale Seo

www.daleseo.com

참고 : https://velog.io/@wind1992/Django-Docker%EB%A1%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0

 

Django : Docker로 배포하기

Why Docker? 팀프로젝트를 하면서 개발용 서버와 프론트와 통신하는 서버(EC2)를 분리하여 작업을 하였다. EC2의 프리티어 용량을 8기가로 적게만들기도 했고, 통신도 많이하다보니 쉽게 로그파일이

velog.io

 

'Web Programming > Server' 카테고리의 다른 글

WSGI, WAS, CGI  (0) 2022.07.05
Github Action  (0) 2022.07.03
도커(Docker)  (0) 2021.10.17
쿠버네티스 컨피그맵  (0) 2021.10.16
쿠버네티스 인그레스  (0) 2021.10.16

댓글