TIL # 49 Docker - 실습 (local)

강경훈·2020년 11월 2일
1
post-thumbnail

Docker에 대해 이론적인 부분에 대해 알아봤으니, 간단한 장고 프로젝트를 가지고 실습을 해보았다.

1. Docker 설치

  • Mac and window
    - Docker 사이트에서 설치
  • ubuntu
    - 아래 컨메드를 순서대로 터미널에 입력하여 설치
    1) sudo apt-get update
    2) sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    3) curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    4) sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    5) sudo apt-get update
    6) sudo apt-get install docker-ce docker-ce-cli containerd.io
    - 설치 완료 후 sudo docker를 입력하면 docker 명령어에 대한 설명을 볼 수 있다.

ubuntu는 앞으로 나올 docker 명령어 앞에 sudo를 붙여 주자

2. Dockerfile 만들기

  • image 파일을 만들기 위한 build 파일
  • 프로젝트 directory 안 Dockerfile 생성
    vi Dockerfile
FROM python:3.8
#python 3.8번을 base 이미지로 사용

WORKDIR /usr/src/app
#컨테이너 상에서 위의 위치로 작업 디텍토리로 전환, 앞으도 등장하는 명령어들은 위의 위치에서 진행

COPY requirements.txt ./
#라이브러리 파일들 복사

RUN pip install -r requirements.txt
#라이브러리 파일들 설치

COPY . .
# 해당 위치에 있는 모든 폴더 파일들 복사

EXPOSE 8000
#docker 8000 포트 사용

CMD ["gunicorn", "--bind", "0.0.0.0:8000", "paldo.wsgi:application"]
#gunicorn을 사용하여 로컬의 8000포트와 binding 할 것이며, paldo.wsgi와 연결 

(위의 설정은 기본적인 설정만 해놓은 상태이다. 프로젝트에 따라 얼마든지 다양하게 바뀔 수 있다.)

3. image 파일 만들기

  • 컨테이너에 담기는 파일
  • image 파일만 있으면 컨테이너를 띄우 수 있는 곳 어디든 같은 프로젝트를 실행 할 수 있다.
  • 명령어
    docker build -t {dockerhubID}/{프로젝트명}:{버전} .
    예) docker build -t kgh239/paldo:0.0.1 .
  • 마지막 (.)은 현재 위치에 Docker파일이 있음을 의미한다.
  • -t 옵션으로 image 파일에 이름을 지정할 수 있다.
  • docker images 로 내가 만든 imaga 파일 확인

4. Container 띄우기

  • 생성한 image 파일을 container에서 담아 프로젝트 실행
  • 독립된 환경에서 프로젝트 실행
  • 명령어
    docker run —name {container_name} -d -p 8000:8000 {image_name}:{버전}
    예) docker run --name paldo001 -d -p 8000:8000 kgh239/paldo:0.0.1
  • --name : container의 이름을 직정 정해주는 옵션 (한 번 사용한 이름은 다시는 사용할 수 없다.)
  • -d : 백그라운드로 계속 container 실행
  • -p : 포트 설정 옵셥. expose 한 8000번과 로컬의 8000포트를 서로 연결해주는 역할

5. Container 확인

  • run 명령어로 container을 띄었다고 해도 image 파일이 잘 못 되면 정상 작동을 안함.
  • container 상태 확인
    1) docker ps -a
    2) STATUS가 Up to {time} 이면 정상 작동 중

    3) 그렇지 않으면 Docker file 또는 image 파일 문제
profile
방랑하는 개발자

0개의 댓글