
탄력적이고 유연하며 비용 효율적으로 웹 앱을 배포하고 실행하기 위해 앱 컨테이너화는 전 세계적으로 가장 널리 사용되는 접근 방식 중 하나입니다. 이 기사에서는Docker를 활용하여 Python Flask 웹 앱을 이미지로 변환하고 Docker 허브로 푸시하는 방법을 안내합니다. 이 글을 마치면 Cloud와 연결하는 데 사용되는 Docker 허브에 라이브 이미지를 배포하는 방법을 배울 수 있습니다.
목차: Docker를 사용하여 Python Web App을 이미지로 변환 및 라이브 푸시
- 도커란?
- 자격 증명 생성 및 Docker 앱 다운로드(Macbook 버전)
- 플라스크 앱 문서
- Dockerfile 문서
- 새 이미지 태그를 로컬로 빌드
- 새 이미지를 Docker Hub에 푸시
- Docker를 사용하여 Python Web App을 이미지로 변환하고 라이브로 푸시하는 전체 Python 스크립트
도커란?
Docker는 개발자가 컨테이너 내 애플리케이션의 배포 및 실행을 자동화할 수 있는 오픈 소스 플랫폼입니다. 컨테이너는 다양한 컴퓨팅 환경에서 일관되고 안정적인실행을 가능하게 하는 라이브러리 및 구성과 같은 종속성과 함께 애플리케이션을 패키징하는 가볍고 휴대 가능하며 격리된 환경입니다.
다음은 Docker와 관련된 몇 가지 주요 개념입니다.
컨테이너화: Docker는 컨테이너 생성 및 실행과 관련된 컨테이너화 기술을 활용합니다. 컨테이너는 격리되고 재현 가능한 환경을 제공하여 애플리케이션이 다양한시스템에서 일관되게 실행될 수 있도록 합니다.
Docker 이미지: 이미지는 코드, 런타임, 라이브러리 및 종속성을 포함하여 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 경량의 독립 실행형 실행 패키지입니다. 이미지는 컨테이너의 빌딩 블록 역할을 합니다.
Docker 컨테이너: 컨테이너는 이미지의 인스턴스입니다. 다른 컨테이너 및 기본 인프라와 격리된 호스트 시스템에서 별도의 프로세스로 실행됩니다. 컨테이너는 이식 가능하며 Docker가 설치된 다른 시스템 간에 쉽게 이동할 수 있습니다.
Dockerfile: Dockerfile은 Docker 이미지를 빌드하기 위한 지침이 포함된 텍스트 파일입니다. 애플리케이션 환경을 설정하는 데 필요한 기본 이미지, 구성, 종속성및 명령을 지정합니다.
Docker 레지스트리: Docker 레지스트리는 Docker 이미지를 저장하는 리포지토리입니다. 가장 일반적으로 사용되는 레지스트리는 수많은 미리 빌드된 이미지를호스팅하는 공개 레지스트리인 Docker Hub입니다. 또한 개인 레지스트리를 설정하여 조직 내에서 자체 Docker 이미지를 저장하고 공유할 수 있습니다.
Docker Compose: Docker Compose는 다중 컨테이너 애플리케이션을 정의하고 관리하기 위한 도구입니다. YAML 파일을 사용하여 복잡한 애플리케이. 션 환경을 설명하고 단일 단위로 배포 및 관리할 수 있습니다.
오케스트레이션: Docker Swarm 및 Kubernetes는 여러 호스트 또는 클러스터에서 컨테이너화된 애플리케이션을 관리하고 확장하는 데 도움이 되는 오케스트레이션 플랫폼입니다. 컨테이너의 자동화된 배포, 확장, 로드 밸런싱 및 자가 복구를 위한 기능을 제공합니다.
Docker는 애플리케이션의 패키징, 배포 및 확장을 단순화하는 기능으로 인해 인기를 얻었습니다. 일관되고 효율적인 개발 워크플로를 촉진하여 팀이 서로 다른 환경에서 더 쉽게 협업하고 응용 프로그램을 배포할 수 있도록 합니다.
자격 증명 생성 및 Docker 앱 다운로드
Docker는 공용이 아닌 개인 리포지토리 1개를 포함하는 무료 계층을 제공합니다. 새 계정이 생성되면 Docker 앱을 다운로드하고 로컬 장치에 설치해야 합니다. Window, Linux 버전, OS 버전도 있습니다.
플라스크 앱 문서
먼저 Flask 프레임워크 구조를 기반으로 전체 Flask 앱 문서 세트를 준비해야 합니다. 확인해야 할 주요 사항 중 하나는 app.py의 포트 및 호스트 값입니다. Flask 기본 앱 스크립트에 이러한 매개변수를 추가해야 합니다.
if __name__ == "__main__" :
app . run ( debug = True , host = "0.0.0.0" , port = 8000 )
Dockerfile 문서
requirements.txt와 같은 층에 있는 Flask 앱의 루트 수준에서 Dockerfile을 추가해야 합니다. 이 파일에서는 주로 Docker 이미지에 대한 몇 가지 중요한 구성 요소를 설정하고 구성합니다.
- 언어 버전
- 디렉토리 경로
- COPY 종속성
- 실행 및 설치 종속성
- Flask 앱 문서를 복사하고 위치에 배치
- 명령 및 실행
샘플은 다음과 같습니다.
FROM python : 3.9.6
WORKDIR /python-flaskdemo
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY ./democn ./democn
CMD [ "python" , "./democn/app.py" ]
로컬에서 새 Docker 이미지 태그 명령 및 빌드
모든 문서가 폴더에 준비되면 폴더를 cd하고 다음 명령으로 문서를 사용하여 이미지를 빌드할 수 있습니다.
docker build -t flaskdemo .
여기 flaskdemo의 경우 로컬 이미지 태그 이름입니다. 원하는 대로 이름을 지정할 수 있습니다. 이미지 이름은 성공적으로 빌드된 후 Docker Desktop 로컬 인터페이스에 표시됩니다.
이미지 빌드가 완료되면 로컬에서 실행을 시도하고 웹 앱이 예상대로 실행되는지 확인할 수 있습니다. 이 프로세스는 로컬에서 실행되는 Flask 앱과 유사합니다.
docker run -p 8000:8000 flaskdemo
로컬 Docker 이미지 태그를 Docker 허브로 푸시
이제 준비된 웹 앱 이미지를 Docker 허브로 푸시할 차례입니다. 기본적으로 시작하는 과정입니다. 터미널에는 여러 단계가 있습니다.
1단계: 도커 로그인
이 명령을 사용하여 Docker 데스크탑이 이미 Docker 허브와 연결되었는지 확인하십시오. 허브에 연결되어 있는지 확인하거나 이전에 만든 자격 증명을 사용하여먼저 로그인해야 합니다.
2단계: 도커 이미지
라이브로 푸시할 이미지 태그를 조회하려면 이 명령을 입력하십시오. 복사해서 먼저 내려놓으시면 잠시 후에 사용됩니다.
3단계: 도커 태그 지정 및 기존 이미지를 Docker 허브에 푸시
지금 복사한 태그 ID, Docker Hub 프로젝트 경로 및 Docker Hub에 표시된 새 이미지 이름과 함께 이 명령을 입력합니다. 이미지 이름은 Docker Desktop이 렌더링된 구성 및 문서를 새 이미지로 푸시하기 때문에 로컬 이름과 다를 수 있습니다.
docker tag tagID dockerHubname/projectname:newimagename
Docker를 사용하여 Python Web App을 이미지로 변환하고 라이브로 푸시하는 전체 Python 스크립트
81장 – Docker를 사용하여 Python Web App을 이미지로 변환 및 푸시 라이브에 관심이 있는 경우,'Chapter 81 + Full Docker Image Convert scripts for Python Web Apps' 메시지를 추가하여 뉴스레터를 구독 하십시오. . 최신 앱 스크립트가 활성화되면 스크립트를 보내드립니다.
81장 – Python Web App을 이미지로 변환 및 Docker를 사용하여 라이브로 푸시하는 것을 즐겁게 읽으시기 바랍니다. 그렇다면 아래 나열된 항목 중 하나를 수행하여 지원해 주세요. 항상 채널에 도움이 되기 때문입니다.
- PayPal( paypal.me/Easy2digital )을 통해 채널을 지원하고 기부하세요.
- 제 채널 구독하시고 알림벨을 켜주세요 Easy2Digital 유튜브 채널 .
- 내 페이지 팔로우 및 좋아요 Easy2Digital Facebook 페이지
- #easy2digital 해시태그를 사용하여 소셜 네트워크에 기사를 공유하세요.
- Easy2Digital 최신 기사, 비디오 및 할인 코드를 받으려면 주간 뉴스레터에 가입하십시오.
- 독점적인 혜택을 누리려면 Patreon을 통해 월간 멤버십을 구독하세요( www.patreon.com/louisludigital ).