개인적으로 클라우드 서버를 사용하고 있는데 그안에서 여러가지 서비스를 돌리려고
생각중이다 보니 Docker
를 사용하게 되었다.
계획은 Docker
에서 Ubuntu
이미지를 이용해서 컨테이너 생성 실행 후 Django
를 설치하는 것이다.
우선 docker
를 설치해야한다. 'docker`는 Linux 운영체제를 제외하고는 별도의 툴을 또 설치해줘야 한다.
여기서는 ubuntu를 기반으로 작성하므로 docker
의 설치방법은 링크를 따라가면 자세히 볼 수 있다.
docker
를 설치하였으면 contaier로 돌릴 운영체제를 선택해야 할텐데 container의 운영체제도 ubuntu
를 사용할거다.
docker
에서는 image와 container라는 개념이 있는데, 간단하게 설명한다면 image는
OS 및 실행프로그램들을 파일상태로 만들어 둔것. container는 그 image 파일을 실행시켜놓은
것이라고 하면 이해하기 쉬울거다.
어쨌든 docker
에서 ubuntu 이미지를 다운받자 pull 명령어를 통해서 ubuntu
image를 다운받은 뒤에 images 명령어를
이용해서 자신의 pc에 존재하는 image들을 확인 할 수 있다.
$ docker pull ubuntu
$ docker images
그 중에서 난 tag가 14.04로 되어있는 ubuntu 이미지를 실행할거다.
docker run -i -t -p 5050:5050 --name my_docker ubuntu:14.04 /bin/bash
요렇게 하면 --name
뒤에있는 my_docker
라는 이름으로 container가 생성되면서 container에 접근이 가능하다.
웹연결을 위해서는 port를 호스트 OS(docker가 운용중인 OS)와 연결을 시켜줘야 하는데 이부분은 -p 5050:5050
라는 명령어가 호스트와 게스트(container)간의 port를 5050으로 연결시켜준다. [host port]:[container port]
형태이다.
container에서 빠져나올 때는 exit
명령어를 이용해서 빠져나올 수 있고, 다시 contaier에 접근하려면 docker attach my_docker
또는
docker exec -it my_docker bash
명령어를 이용할 수 있다.
이제 여기서부터는 일반적으로 django를 설치하고 사용하듯이 사용하면 된다.
기본적인 셋팅을 하자
$ sudo apt-get update
$ sudo apt-get install python-pip
python을 쓸거면 virtualenv는 이제 필수...
$ sudo pip install virtualenv
$ sudo pip install virtualenvwrapper
여기까지 했으면 아래의 명령어로 .virtualenv
폴더를 생성한다. 해당 폴더는 python의 환경설정들을
저장할 공간으로 사용한다.
$ mkdir ~/.virtualenv
그럼 이제 virtualenv 환경설정을 .bashrc
파일에 세팅하자.
$ echo "export WORKON_HOME=~/.virtualenv" >> ~/.bashrc
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
그리고 bashrc를 다시 실행
$ source ~/.bashrc
or $ . ~/.bashrc
여기까지 했으며 이제 django를 설치하면 된다.
여기서는 간단히 virtualenv환경에 Django를 설치 하는 부분까지만 작성한다.
아래의 명령어로 my_django 가상환경을 세팅한뒤
$ mkvirtualenv my_django
pip install django
명령어를 이용하여 django를 설치.
실직적으로 서버처럼 사용을 위해서는 nginx
or apache
같은 서버도 설치를 해서 세팅을 해줘야 하지만
여기서는 그런부분까지는 다루지 않는다.
container를 생성했으면 해당 container를 image로 만들어서 docker-hub에도 올려보고 해야겠지만 그러한 부분은
별도로 docker와 관련된 내용으로 작성하겠다.
참조 링크 : How To Serve Django Applications with uWSGI and Nginx on Ubuntu 14.04 by DigitalOcean