Docker 이론에 대해 배웠으니, 이번엔 실습을 해볼 예정입니다.
저는 맥북 M1을써서, 제 기준으로 작성했습니다.
Docker 홈페이지로 가서 설치합니다.
root directory로 이동하여, DockerFile을 생성합니다.
확장자명은 없이, 이름만 작성해주면 됩니다.
아래 사진에 저는 대문자로 썼는데, 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", "프로젝트명.wsgi:application"]
우선 아래명령어를 입력하여 Docker를 실행시켜줍니다.
저는 편의상 Docker파일이 있는 디렉토리에서 실행했습니다.
docker run -d -p 80:80 docker/getting-started
그러면 컨테이너 하나가 RUNNING 상태인 걸 알 수 있습니다.
그리고 Dockerfile이 있는 디렉토리에서 아래와 같은 명령어를 입력해줍니다
docker buildx build --platform=linux/amd64 -t {image name}:{tag name} {Dockerfile path}
ex) docker buildx build --platform=linux/amd64 -t lkyong0926/humanscape:0.1.0 .
그럼 터미널에서 빌드가 완료됐다는 걸 볼 수 있습니다.
그 다음 빌드된 이미지를 실행해봅니다
docker run --name '컨테이너 명' -d'데몬으로 실행하기 위한 옵션' -p '호스트 포트':'컨테이너 포트' '이미지명'
ex) docker run --name humanscape -d -p 8000:8000 lkyong0926/humanscape:0.1.0
명령어를 통해 확인도 가능합니다.
아래와 같이 입력 후, Status가 Up.. 이면 정상적으로 된 것입니다.
docker ps -a
내가 이름지은대로 컨테이너가 생성된걸 확인할 수 있습니다.
기본적인 연결이 끝났으니, 다음엔 배포를 해보겠습니다.