💪 들어가며...
이번 시간에는 Docker를 활용하는 법에 대해서 다루어보려고 합니다.
이번 포스트에는 간단하게 Docker와 가상환경의 차이에 대해 다루어보고, 어떤 과정으로 이것을 진행하면 되는지에 대해서 이야기 나누어보겠습니다.
🐳 Docker vs 가상환경
가상환경
- 하나의 서버 내에서 프로그램 별로 환경 구분이 가능
- 가상환경 별로 컴퓨팅 파워를 지정하고 이를 넘겨주거나 하는 것이 불가능하기에 비효율적인 상황이 발생 가능
Docker
- 컴퓨팅 파워를 가상환경과 달리 유동적으로 공유해서 사용 가능
- 컨테이너(가상 컴퓨터) 형태로 환경을 구분
- 이미지를 통해서 동일한 형태의 컨테이너를 무한히 생성 가능
(Auto Scaling 활용 가능)
🐬 Docker 활용하기
이번 시간에 활용할 활용법은 Docker를 활용해서 Django와 Nginx를 실행시키는 과정을 간단하게 설명할 것입니다.
Django Docker 실행하기
- EC2 인스턴스 위에 Django 다운(관련 포스트 확인)
- 다운 받은 Django의 requirements.txt 에 uwsgi 추가 기입
- 명령어 입력으로 Docker 설치
- 설치한 Docker에 권한 설정
-> 해당 과정은 여러 컨테이너의 사용을 유기적으로 하기 위해 필요
- 원하는 환경에 맞는 Docker 파일 생성
(관련 내용은 인터넷 검색으로 찾는 것이 좋습니다.)
- 명령어 입력으로 Docker 파일에 해당하는 이미지를 생성
- 도커 실행으로 해당 이미지(Django 이미지)를 실행시키는 것이 가능
Nginx Docker 실행하기
- 기존 생성했던 Django 폴더에 uwsgi.ini 이름으로 설정파일 생성
(해당 파일은 추후에 만들 Nginx와 연결을 위한 폴더)
- Django 폴더 밖에 Nginx 관련 폴더 생성
- 생성된 폴더 안에 nginx.conf 이름으로 Configue 파일 생성
- Nginx 관련 Docker 파일 생성
- Docker 파일에 해당하는 이미지를 생성하고 이미지를 실행
문제점
위의 과정으로 프로젝트를 진행하면 문제가 발생할 수 있습니다.
위의 구조로 프로젝트를 진행하려면 Django가 먼저 실행되고, Nginx가 실행되어야 하는데, 이런 순서를 맞춰주는데에 어려움도 있고, 번거롭기 때문에 이를 해결하기 위해 아래와 같은 방법을 사용합니다.
Docker-Compose 활용하기
- 명령어로 Docker-Compose 다운 받기
(윈도우 같은 경우 도커가 설치되면 자도으로 다운 되는데, Linux는 추가 설치 필요)
- Docker-Compose 에 권한 설정하기
(Docker에 권한을 주었던 것과 동일 과정)
- Docker-Compose 관련 파일 생성
(파일 내부에 이미지 내용과 순서 등 설정을 기입)
- Docker-Compose를 실행해서 원하는 순서대로 Docker 실행 가능