완전 초보자를 위한 5가지 재미있는 Docker 프로젝트

완전 초보자를 위한 5가지 재미있는 Docker 프로젝트

완전 초보자를 위한 5가지 재미있는 Docker 프로젝트완전 초보자를 위한 5가지 재미있는 Docker 프로젝트
작성자별 이미지

# 소개

프로젝트에 뛰어들기 전에 Docker가 무엇인지, 사람들이 Docker에 관심을 갖는 이유를 정리하겠습니다. Docker는 애플리케이션과 애플리케이션에 필요한 모든 것을 컨테이너에 패키징합니다. 컨테이너는 어디에서나 동일한 방식으로 실행되는 가볍고 격리된 환경입니다. “내 컴퓨터에서 작동” 문제 없음. 노트북에서 실행되는 경우 서버나 클라우드에서도 동일하게 실행됩니다. 개발자들은 코드 공유가 간단하고 예측 가능해지기 때문에 이를 좋아합니다. 이 “5가지 재미있는 프로젝트” 시리즈에서는 실천을 통한 학습에 중점을 두고 있습니다. 모든 프로젝트는 하나의 핵심 Docker 기술을 가르칩니다. 결국에는 Docker를 이론적으로만 아는 것이 아니라 사용 방법도 이해하게 될 것입니다.

# 1. Nginx와 Docker를 이용한 정적 웹사이트 호스팅

Techdox의 이 비디오에서는 다음을 사용하여 웹사이트를 호스팅하는 방법을 보여줍니다. 엔진스 도커에서. 웹 서버를 컨테이너화하고, 사이트 파일을 추가하고, 모든 것을 단일 컨테이너에서 실행합니다. 튜토리얼에서는 간단한 만들기 과정을 안내합니다. Dockerfile (또는 Docker Compose), 페이지를 제공하도록 Nginx를 설정하고 사이트가 활성화되도록 컨테이너를 시작합니다. Nginx는 모두 Docker 내부에서 실행되므로 컴퓨터에 Nginx를 설치할 필요가 없습니다. 이렇게 하면 설정이 깨끗하고 재현 가능하게 유지됩니다.

# 2. Docker Compose를 사용한 다중 컨테이너 Docker 애플리케이션

이 비디오에서는 Docker Compose를 사용하여 Python Flask 백엔드와 Redis 데이터베이스라는 두 가지 서비스를 함께 실행하는 방법을 보여줍니다. 빌드, 포트, 연결을 포함한 모든 서비스 구성이 하나로 정의됩니다. docker-compose.yml 파일. 단 하나의 명령으로 모든 것을 시작합니다. docker compose up. 컨테이너는 자동으로 통신하며 환경 설정은 중앙 집중식으로 유지됩니다. 이를 통해 Docker에서 여러 서비스를 처리하는 실제 예를 제공하면서 모든 컴퓨터에서 앱을 쉽게 실행하고 관리할 수 있습니다.

# 3. 여러 컨테이너가 공유하는 하나의 데이터베이스

다중 Docker 컨테이너 서비스를 위한 단일 데이터베이스 서비스 비디오에서 작성자는 단일 데이터베이스 컨테이너를 실행하고 여러 애플리케이션 컨테이너를 이에 연결하는 방법을 보여줍니다. Docker에서 MySQL 또는 다른 데이터베이스를 한 번 설정하면 각 서비스는 자체 컨테이너에서 실행되지만 공유 Docker 네트워크 또는 적절한 포트 매핑을 통해 동일한 데이터베이스에 연결됩니다. 보안 통신을 위해 네트워킹을 구성하고, 데이터베이스 포트를 노출하고, 컨테이너를 연결하는 방법을 알아봅니다. 이 접근 방식은 데이터베이스를 중앙 집중화하여 리소스를 절약하는 데 도움이 되며 공유 데이터베이스가 별도의 인스턴스에 비해 가장 잘 작동하는 시기를 알려줍니다.

# 4. Docker에서 Jenkins를 사용한 자동화된 지속적 통합

이 비디오에서는 다음을 사용하여 완전한 CI(지속적 통합) 파이프라인을 구축하는 방법을 보여줍니다. 젠킨스 코드가 변경되면 Docker 내부에서 Docker 이미지를 자동으로 생성합니다. 첫 번째 비디오인 Jenkins 파이프라인을 사용하여 React Docker 이미지 구축 및 푸시에서는 Jenkins 컨테이너 설정, 소스 코드를 가져오는 파이프라인 생성, Docker 이미지 구축, 선택적으로 테스트 실행 또는 이미지를 레지스트리에 푸시하는 과정을 안내합니다. 두 번째 비디오인 Docker에서 Jenkins를 사용하여 Docker 이미지를 구축하는 자동화된 CI는 React 앱에 중점을 두고 Jenkins를 소스 리포지토리에 연결하고 Docker 이미지를 구축 및 태그 지정하고 자동으로 푸시하는 방법을 보여줍니다. 두 튜토리얼 모두 Jenkins를 컨테이너화하여 빌드 환경을 격리하고 재현 가능하며 일관성을 유지하는 방법을 보여줍니다. 일단 설정되면 모든 코드 업데이트는 새로운 빌드를 트리거하여 배포를 안정적이고 자동화합니다.

# 5. Docker 로깅 및 모니터링

이 비디오에서는 Docker를 사용하여 전체 관측 가능성 스택을 구축하는 방법을 보여줍니다. 프로메테우스 시스템 및 컨테이너 측정항목을 수집합니다. Loki는 로그를 저장합니다. 긁다 실시간 대시보드에 모든 것을 표시합니다. 첫 번째 비디오인 Loki, Prometheus, Grafana 및 Docker: 로깅 및 모니터링에서는 각 서비스에 대해 Docker를 설정하고, 이를 올바르게 연결하고, 메트릭을 로그와 연결하여 컨테이너의 성능을 확인하는 방법을 배웁니다. 두 번째 비디오인 서버 모니터링: Prometheus 및 Grafana 튜토리얼은 이식 가능하고 재현 가능한 설정에서 Prometheus 및 Grafana를 사용하여 서버 또는 컨테이너 환경을 모니터링하는 데 중점을 둡니다. Prometheus를 Grafana의 데이터 소스로 구성하고, 메트릭 엔드포인트를 설정하고, 대시보드를 생성하여 CPU, 메모리 및 컨테이너 성능을 추적하는 방법을 보여줍니다. 두 접근 방식 모두 컨테이너화를 기반으로 하므로 모든 시스템에서 스택을 쉽게 실행, 복제 및 확장할 수 있습니다.

# 마무리

이 5개 프로젝트는 한 번에 한 계층씩 Docker 기술을 구축합니다. 웹 사이트를 호스팅하고, 여러 서비스를 연결하고, 데이터베이스를 공유하고, 빌드를 자동화하고, 모든 것을 모니터링합니다. 각 프로젝트는 실제 업무에서 사용할 수 있는 실용적인 기술을 제공합니다. 이제 이러한 프로젝트를 시도하고 Docker를 직접 살펴볼 차례입니다.

칸왈 메린 데이터 과학과 AI와 의학의 교차점에 대한 깊은 열정을 가진 기계 학습 엔지니어이자 기술 작가입니다. 그녀는 “ChatGPT를 통한 생산성 극대화”라는 전자책을 공동 집필했습니다. 2022년 APAC Google Generation Scholar로서 그녀는 다양성과 학문적 우수성을 옹호하고 있습니다. 그녀는 또한 Tech Scholar, Mitacs Globalink Research Scholar 및 Harvard WeCode Scholar에서 Teradata Diversity로 인정받았습니다. Kanwal은 STEM 분야에서 여성의 역량을 강화하기 위해 FEMCodes를 설립한 변화에 대한 열렬한 옹호자입니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다