Django 앱을 도커화하는 방법

Django 앱을 도커화하는 방법

Docker는 컨테이너화된 애플리케이션을 관리할 수 있는 가장 인기 있는 컨테이너 플랫폼 중 하나입니다. Docker는 컨테이너 자동화, 보안, 사용자 정의 및 엔터프라이즈 지원을 위한 아키텍처 및 기능을 제공합니다.

Docker에는 Docker 클라이언트(명령줄 도구), Docker 호스트 및 Docker 레지스트리라는 세 가지 중요한 구성 요소가 있습니다. 이 세 가지 구성 요소는 함께 작동하여 응용 프로그램을 빌드, 실행 및 저장할 수 있도록 합니다.

샘플 Django 앱을 컨테이너화하여 이 놀라운 도구를 사용하는 방법을 알아보세요. 먼저 Ubuntu, macOS 및 Windows에 Docker를 설치하는 방법을 배웁니다.

우분투에 도커 설치

선호하는 운영 체제에 Docker를 설치하여 시작하십시오. 이 참고 사항에 따라 Ubuntu에 Docker를 설치하거나 macOS 또는 Windows용 다음 지침을 사용할 수 있습니다.

macOS에 도커 설치

macOS에 Docker를 설치하려면 macOS 11 이상이 있는지 확인하십시오. 그런 다음 다음 단계를 따르십시오.

  1. Docker 허브 웹 사이트 에서 Docker를 다운로드 합니다.
  2. Docker.dmg 를 두 번 클릭 하여 설치 프로그램을 엽니다.
  3. Docker 아이콘을 애플리케이션 폴더로 드래그 합니다.
  4. Docker를 시작하려면 Docker.app 을 두 번 클릭 합니다 .
  5. 상태 표시줄의 Docker 고래 로고는 Docker가 실행 중임을 나타냅니다.

Docker Mac 설치 지침 에 따라 명령줄을 통해 macOS에 Docker를 설치할 수도 있습니다 .

Windows에 도커 설치

Windows OS에 Docker 데스크탑을 설치하려면 다음 단계를 따르십시오.

  1. Docker 허브 웹 사이트 에서 Docker를 다운로드 합니다.
  2. Docker Desktop Installer.exe 를 두 번 클릭하여 설치 프로그램 을 실행합니다.
  3. 설치 시 구성 페이지에서 Hyper-V Windows 기능을 활성화하십시오.
  4. 프로세스를 따르고 설치가 완료될 때까지 모든 권한을 허용하십시오.
  5. 설치 후 닫기 를 클릭하여 프로세스를 완료합니다.
  6. Docker를 시작하려면 데스크톱 검색 결과에서 Docker Desktop을 검색하고 선택합니다.

또는 Docker Windows 설치 지침 에 따라 명령줄을 사용하여 Windows OS에 Docker를 설치할 수 있습니다 .

장고 앱 만들기

간단한 Django 앱을 만듭니다. http://127.0.0.1:8000으로 이동하면 앱을 볼 수 있습니다. 이 앱을 컨테이너화합니다.

Hello docker H1이 있는 브라우저의 앱

Dockerfile 만들기

앱을 컨테이너화하려면 Docker 이미지를 생성하여 컨테이너를 빌드하고 실행해야 합니다. Docker 이미지는 컨테이너 실행 방법에 대한 지침 템플릿입니다.

Dockerfile 을 사용 하여 앱의 이미지를 만듭니다. Dockerfile 이라는 루트 폴더에 파일을 만듭니다 . 그런 다음 파일에 다음 지침을 추가합니다.

FROM python:3

WORKDIR /app

ADD. /app/

EXPOSE 8000

COPY requirements.txt /app

RUN pip3 install -r requirements.txt --no-cache-dir

COPY. /app

ENTRYPOINT ["python3"]

CMD ["manage.py", "runserver", "0.0.0.0:8000"]

Dockerfile은 고유한 Docker 키워드를 사용하여 지침을 지정합니다.

FROM 키워드 는 이미지를 빌드하려는 기본 이미지를 식별합니다. Docker의 Python 이미지에는 Django 앱을 실행하는 데 필요한 구성 요소가 있습니다. Docker는 후속 빌드에서 동일한 이미지를 사용합니다.

WORKDIR 키워드는 컨테이너 내부에 디렉토리를 생성합니다 . 예제 명령은 /app 디렉토리를 루트 폴더로 식별합니다.

ADD 명령 은 현재 폴더의 모든 항목을 /app 폴더에 추가합니다.

EXPOSE 키워드는 Docker 이미지 내부 의 포트를 외부 세계에 노출합니다. 브라우저를 사용하여 이 포트에서 컨테이너화된 앱을 볼 수 있습니다.

COPY 키워드 는 한 폴더에서 콘텐츠를 복사하여 다른 폴더에 배치합니다. 귀하의 경우 현재 디렉토리에서 앱의 모든 내용을 복사합니다. 콘텐츠는 컨테이너의 App 폴더로 이동합니다.

RUN 키워드 는 현재 이미지의 새 레이어에서 모든 명령을 실행하고 결과를 커밋합니다. Dockerfile의 다음 단계에서는 커밋된 결과 이미지를 사용합니다.

ENTRYPOINT 키워드는 컨테이너를 실행 파일로 정의합니다 . 이 경우 Python3입니다. CMD 키워드 와 함께 또는 대신 사용할 수 있습니다 . Dockerfile 은 CMD 또는 ENTRYPOINT 키워드 중 하나 또는 모두를 지정해야 합니다 . Docker는 두 명령어가 협력하는 방식을 정의합니다.

CMD 키워드 는 이미지가 시작될 때 Linux 명령을 실행합니다. 지침은 컨테이너를 실행할 때 실행되는 명령을 정의합니다.

도커 이미지 빌드

이제 Dockerfile 이 완료되었으므로 계속 진행하여 Docker 이미지를 빌드합니다. 다음 명령을 실행하여 이미지를 빌드합니다.

docker build --tag docker-django-app:latest.

빌드가 시작되면 Docker는 이미지를 레이어로 빌드합니다. 레이어는 Dockerfile 에 제공된 지침 수에 따라 결정 됩니다. 이 경우 9개의 레이어가 있습니다. 9단계는 이러한 레이어를 나타냅니다.

성공적인 빌드는 다음과 같이 표시됩니다.

도커가 성공적으로 이미지를 빌드합니다.

이제 도커 이미지를 확인하면 새 이미지가 표시됩니다.

도커에 새로 빌드된 이미지

Docker 컨테이너 실행

다음으로 컨테이너에서 이미지를 실행해야 합니다. 이것은 앱이 살게 될 곳입니다. 다음 명령을 실행하여 이미지를 실행합니다.

docker run --name docker-djangoapp -p 8000:80 -d docker-django-app:latest

다음과 같이 컨테이너의 일련 번호를 반환해야 합니다.

새로운 컨테이너화된 앱

Docker 실행 명령은 이미지에 대한 옵션 태그를 허용합니다. 이 경우 –name 태그를 사용하여 컨테이너 docker-djangoapp 의 이름을 지정할 수 있습니다. 그런 다음 -p 를 사용하여 포트 8000:80 에서 컨테이너를 실행합니다 . 다음으로 컨테이너를 만들려는 이미지를 지정합니다. 이전 에 만든 docker-django-app:latest 이미지입니다.

docker run 명령은 이미지 위에 컨테이너 계층을 만듭니다. 그런 다음 지정된 명령을 사용하여 시작합니다. 컨테이너를 실행하기 위한 구문은 다음과 같습니다.

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Docker 컨테이너를 확인하여 컨테이너가 실행 중인지 확인하십시오. docker ps 를 실행하면 다음과 같이 나타나야 합니다.

도커에서 실행되는 새 컨테이너

축하합니다! 첫 번째 앱을 컨테이너화했습니다. 다음으로 스토리지를 위해 컨테이너를 Docker 레지스트리로 푸시할 수 있습니다. 모든 시스템에서 원할 때마다 응용 프로그램에 액세스할 수 있습니다.

온라인에서 다른 사람과 공유할 수도 있습니다. 레지스트리는 이미지에 대한 보안을 제공하고 개인 계정에 대한 추가 권한을 허용합니다.

앱을 도커화하는 이유는 무엇입니까?

점점 더 많은 개발자가 Docker를 사용하여 모든 가상 환경에서 컨테이너 구축 및 관리를 최적화하고 있습니다.

Docker는 Docker 데몬에 빌드 명령을 실행하는 클라이언트를 포함하여 생산적인 기능을 제공합니다. 데몬은 이미지를 빌드하고 컨테이너를 실행합니다. Docker 레지스트리에 이미지를 빌드하고 저장할 수 있습니다. 이렇게 하면 이미지가 안전하고 온라인에서 사용할 수 있습니다.

Docker는 미리 만들어진 구성 요소가 있는 이미 구성된 공식 이미지를 제공합니다. 이러한 이미지를 사용하여 애플리케이션용 컨테이너를 빠르게 구축할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다