Docker

Joey Lee·2020년 7월 1일
0

개발 전반

목록 보기
7/10
post-custom-banner

도커 실행 명령어

docker

docker ps
#(실행중인 컨테이너를 보여주는 커맨드) 
docker ps -a
#(실행이 종료된 것을 포함해서 모든 컨테이너를 보는 커맨드 및 옵션)
docker images
#(생성된 혹은 다운로드 된 이미지를 보여주는 커맨드)
docker images -a
#(모든 이미지를 보여주는 커맨드 및 옵션)

docker image 생성

프로젝트 디렉토리에 가서,
vi Dockerfile
도커 이미지를 만들기 위해서 설정 파일을 만드는 것임

#./Dockerfile
FROM python:3 
#기반이 될 이미지

# 작업디렉토리(default)설정
WORKDIR /usr/src/app 

## Install packages
#현재 패키지 설치 정보를 도커 이미지에 복사
COPY requirements.txt ./ 
#설치정보를 읽어 들여서 패키지를 설치
RUN pip install -r requirements.txt

## Copy all src files
#현재경로에 존재하는 모든 소스파일을 이미지에 복사
COPY . . 

## Run the application on the port 8080
#8000번 포트를 외부에 개방하도록 설정
EXPOSE 8000   

#CMD ["python", "./setup.py", "runserver", "--host=0.0.0.0", "-p 8080"]
#gunicorn을 사용해서 서버를 실행
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "example.wsgi:application"]  

도커파일을 이용해 이미지 빌드하기

requirements.txt 의존성에 문제가 될 수 있는게 있는지 확인해 봐야 함
my_setting DB 설정이 아마존으로 되어 있어야 함
gunicorn이 있어야 함.

docker build -t '도커허브에 가입한 계정명'/'이미지명(프로젝트명 권장)':'버전' .
ex) docker build -t wecode/wecodeproject:0.1.0 .

실행 시, 문제 있을 때 확인하기

docker run -it wecode/wecodeproject:0.1.0 /bin/bash
#위의 명령어를 실행하면 이미지를 기반으로 바로 컨테이너를 실행하면서 접속한다.
#process 등 여러가지를 살펴보면서 현재 서버에 어떤 문제가 있는지 알 수 있다. 하지만 수정은 컨테이너에서 하는게 아닌 이미지를 다시 빌드 해야한다.
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
ex) docker run --name wecode01 -d -p 8000:8000 wecode/wecodeproject:0.1.0

docker hub

gunicorn을 쓰는 이유 : 실제 운영 시 manage.py가 아님

profile
안녕하세요!
post-custom-banner

0개의 댓글