초보자를 위한 12가지 흥미로운 Docker 프로젝트 아이디어 [2022]
게시 됨: 2021-01-07오늘날 앱은 DevOps 이전에 사용되던 방식으로 더 이상 개발 및 배포되지 않습니다. DevOps는 IT 및 소프트웨어 산업에서 주류가 된 이후로 운영 인프라를 근본적으로 변화시켰습니다. 이제 개발자와 운영자가 함께 작업하여 앱을 빠르고 효율적으로 빌드, 테스트 및 배포합니다. 그것이 바로 Docker가 그림에서 적합한 위치입니다.
Docker는 컨테이너화 소프트웨어 또는 더 정확하게는 앱과 해당 환경을 번거롭지 않은 방식으로 모든 환경 및 시스템에 저장 및 배포할 수 있는 더 작은 청크로 분할할 수 있는 PaaS 도구입니다. 컨테이너화를 사용하면 모든 리소스를 공유하지 않고도 여러 컨테이너(앱, 해당 시스템 파일 및 환경 포함)가 하나의 가상 머신에서 원활하게 작동합니다.
결과적으로 동일한 가상 머신에서 여러 애플리케이션을 실행할 수 있습니다. 여기서 각 애플리케이션은 운영 체제, CPU, 메모리, 스토리지 및 기타 중요한 리소스를 소유한 것처럼 작동합니다.
Docker 생태계는 Moby, Kubernetes 및 Containerd의 4가지 주요 프로젝트로 구성됩니다. 그러나 그게 다가 아닙니다. Docker에는 이 세 가지 프로젝트보다 더 많은 것이 있습니다. Docker 커뮤니티는 전 세계의 개발자가 어디서나 실행할 수 있는 앱을 빌드하고 배포할 수 있도록 Docker와 함께 또는 Docker를 위한 동급 최고의 프로젝트와 도구를 개발하기 위해 매일 적극적으로 노력하고 있습니다 . DevOps를 배우고 싶다면 Docker는 배워야 할 중요한 섹션입니다.
Swiggy, Quora, IMDB 등과 같은 애플리케이션을 빌드하는 방법을 배우십시오.
이 게시물에서 우리는 모든 야심 찬 개발자가 알아야 할 최고의 Docker 프로젝트 중 일부를 강조할 것입니다!

목차
최고의 Docker 프로젝트 아이디어
1. 랜처 VM
Docker를 사용하는 사람이라면 Rancher가 무엇인지 알 것입니다. Docker Swarm , Kubernetes 및 Mesos 와 같이 가장 널리 사용되는 컨테이너 오케스트레이션 및 스케줄링 프레임워크의 호스트를 포함하는 서비스로서의 컨테이너 공급업체입니다 . RancherVM은 Docker 컨테이너 내에서 VM을 실행할 수 있는 Rancher의 덜 알려진 프로젝트 중 하나입니다. 공개 키, 컴퓨팅 노드, VM을 관리하고 웹 브라우저에서 VNC 콘솔에 액세스하기 위한 웹 UI가 장착되어 있습니다.
RancherVM을 사용하면 VM 포드라고도 하는 Kubernetes 포드 내에서 실행되는 VM을 구축할 수 있습니다. 각 VM 포드에는 가상 머신 인스턴스를 실행하는 컨테이너가 포함됩니다. 현재 RancherVM은 KVM 이미지만 지원합니다. 따라서 모든 KVM 이미지를 Docker 이미지로 패키징하고 Docker 레지스트리(예: DockerHub)를 사용하여 배포하고 RancherVM에서 실행할 수 있습니다.
또한 RancherVM은 사용자 지정 리소스 정의(CRD)를 사용하여 Kubernetes API를 확장합니다. SSH 세션을 시작하도록 승인된 기본 이미지, 컴퓨팅 리소스의 양 및 키 쌍을 지정하는 VirtualMachine CRD 사양을 정의할 수 있습니다. 그런 다음 Kubernetes 컨트롤러는 사용자가 제공한 사양에 따라 VM 포드를 생성하고 VirtualMachine CRD 상태에 동일한 것을 표시합니다.
자세히 알아보기: 초보자를 위한 10가지 흥미로운 DevOps 프로젝트 [2020]
2. 도커크래프트
2015년 11월, Microsoft는 대중의 눈 앞에서 Dockercraft를 출시했습니다. Microsoft가 25억 달러에 구입 한 인기 게임인 Minecraft 에서 개발자가 Docker 컨테이너를 관리할 수 있도록 명시적으로 설계된 GitHub의 오픈 소스로 출시되었습니다 !
GitHub 에 따르면 Dockercraft는 Minecraft의 3D 환경에서 "Docker 컨테이너를 시각화하고 관리하기 위한 간단한 Minecraft Docker 클라이언트"입니다. Minecraft에서 구현된 정확히 복잡한 Docker 관리자가 아니라 Docker 컨테이너에서 스위치를 시각화하고 뒤집는 단순한 방법입니다.
Dockercraft를 사용하려면 PC에 정식 버전의 Minecraft가 있어야 한다는 점을 기억하는 것이 중요합니다. 이미 가지고 있다면 Github 에서 Dockercraft를 다운로드할 수 있습니다 . 설정을 완료한 후 Dockercraft 컨테이너를 실행하고 사용자 지정 Minecraft 서버인 Cuberite에 가입해야 합니다.

3. 와인
Docker의 가장 큰 단점은 Docker화된 앱이 크로스 플랫폼이 아니라는 것입니다. 즉, Linux에서 기본적으로 Docker Windows 앱을 실행할 수 없습니다. 이 문제를 해결하기 위해 Wine 이 만들어졌습니다. Wine on Docker는 로컬 애플리케이션이 전 세계 어디에서나 실행되는 것처럼 Windows 애플리케이션을 Linux OS에서 실행할 수 있도록 개발되었습니다. Docker에서는 Wine으로 알려져 있지만 GitHub 에서는 Docker-Wine이라고 합니다.
Wine은 Wine 호환성 계층 을 사용하여 Linux에서 Windows 앱을 지원합니다. Wine은 로컬 및 원격 지원을 모두 지원하는 Dynamic Video 드라이버와 VirtualGL 과 함께 제공되기 때문에 즉시 사용 가능한 Nvidia 카드와 Nvidia 드라이버, 심지어 Mesa 드라이버를 사용하는 다른 카드에서도 잘 작동해야 합니다. 설치한 드라이버가 무엇이든 간에 자동으로 적용되도록 Wine을 구성할 수 있습니다.
4. 도커몬
현재 Shipyard 와 같은 Docker 이미지에 대한 모니터링 서비스는 소수에 불과합니다 . 그리고 개발자/프로그래머가 셸 내부의 모든 필수 요구 사항에 액세스할 수 있는 도구를 좋아한다는 것은 잘 알려진 사실입니다. Docker-Mon은 이러한 콘솔 Docker 모니터링 도구 중 하나입니다. Docker-mon은 셸 중심의 대시보드 프레임워크인 축복받은 기여도 를 기반으로 합니다.
이 프로젝트는 아직 진행 중인 작업이며 아직 시작되지 않은 docker stats 기능 에 의존합니다 . 따라서 Docker-Mon을 사용하려면 마스터 빌드 또는 곧 출시될 v1.5.0이 필요합니다( 여기 에서 v1.5.0-rc1의 출시를 확인할 수 있습니다 ).
5. 여객-도커
우리 모두는 Phusion Passenger 가 Rails 개발자가 가장 좋아하는 사람이라는 것을 알고 있습니다. 이 앱 서버의 주요 목표는 개발자가 애플리케이션을 원활하게 실행할 수 있는 적절한 환경을 만드는 것입니다. 이 아이디어가 패신저-도커 프로젝트의 탄생을 촉발시켰습니다. 목표는 프로덕션 환경에서 Docker를 구현하려는 개발자를 위한 합리적인 기본 기본 이미지를 개발하는 것이었습니다.
Passenger-Docker 는 Ruby, Python, Node.js 및 Meteor 웹 앱 이미지의 기반으로 사용하도록 설계된 Docker 이미지 모음입니다. Phusion Passenger의 핵심 만트라를 유지하면서 Passenger-Docker 프로젝트는 웹 앱용 Docker 이미지를 만드는 프로세스를 단순화하고 가속화하려고 합니다.
6. 큐브버트
KubeVirt는 Kubernetes용 VM 관리 추가 기능입니다. Kubernetes 위에 가상화 솔루션을 구축하기 위한 공통 기반을 제공하기 위해 개발되었습니다. 기본적으로 Kubernetes는 다른 유형의 인프라가 아닌 컨테이너를 관리하기 위해 만들어졌습니다. 그러나 Kubernetes를 사용하여 VM 클러스터를 오케스트레이션할 수 있습니다. 이것이 KubeVirt가 하는 일입니다. VM을 원활하게 지원할 수 있도록 Kubernetes에 추가 기능을 추가합니다.
KubeVirt는 Kubernetes의 Custom Resource Definitions API 를 통해 추가 가상화 리소스 유형을 통합하여 Kubernetes의 기능을 확장하는 것을 목표로 합니다 . KubeVirt를 사용하여 미리 정의된 VM을 구축하고, VM을 시작하고, VM을 중지하고, VM을 삭제하고, Kubernetes 클러스터에서 VM을 예약할 수도 있습니다. 그러나 KubeVirt는 아직 진행 중인 작업입니다.
더 읽어보기: Kubernetes 네트워킹: 네트워크 모델을 이해하기 위한 완전한 가이드
7. 문서
Docket 은 BitTorrent를 통해 번개처럼 빠른 배포를 용이하게 하는 맞춤형 Docker 레지스트리입니다. 이를 통해 놀라운 속도로 대규모 머신 클러스터에 Docker 이미지를 배포할 수 있습니다. Docket은 Gopher Gala Golang 48시간 해커톤에서 48시간 만에 설계 및 개발되었습니다! Golang으로 작성된 Docket은 사용자 친화적이며 개인 Docker 레지스트리와 잘 작동합니다.
Docket은 세 가지 주요 구성 요소로 구성됩니다.
- Docket Registry: 레지스트리 역할을 하는 REST 서비스입니다. 클라이언트로부터 Docker 이미지 tarball을 수신하고, 메타데이터를 데이터베이스에 저장하고, 토렌트를 생성하고 시드할 수 있습니다.
- Docket Client: 최종 사용자가 상호 작용하는 인터페이스입니다. 이를 통해 레지스트리에서 사용 가능한 이미지를 보고, 이미지를 레지스트리로 푸시하고, 레지스트리에서 이미지를 가져올 수 있습니다(이는 BitTorrent 배포를 트리거함).
- BitTorrent 추적기: Docket에는 BYOT(추적기 가져오기) 기능이 있지만 BitTorrent 추적을 위해 opentracker 를 설치하는 것이 좋습니다.
8. 컨테이너 마이그레이션 도구(CMT)
Docker 컨테이너의 좋은 점은 Docker가 설치된 모든 유형의 호스트에서 실행할 수 있기 때문에 이식 가능하다는 것입니다. 그러나 Docker에는 네트워크를 통해 실행 중인 컨테이너를 한 클러스터에서 다른 클러스터로 이동할 수 있는 기본 제공 기능이 없습니다. 문제에 추가하기 위해 체크포인트 및 복원(CR)은 일반적으로 컨테이너 사용자가 사용할 수 없는 비교적 새로운 기능입니다. CR은 기능에 대한 수준의 이해가 필요하며 일반적으로 CR 기능에 익숙하지 않은 대부분의 사용자는 소스와 대상 호스트 간의 차이점/제한으로 인해 CR을 수행하는 동안 오류를 얻습니다.
컨테이너 마이그레이션 도구 또는 CMT는 이 마이그레이션 문제를 해결하기 위해 특별히 개발되었습니다. CMT 생성의 이면에 있는 아이디어는 마이그레이션 전 유효성 검사를 수행하고 적합한 대상 호스트를 자동 검색하여 서로 다른 호스트 간에 컨테이너의 실시간 마이그레이션을 용이하게 하는 Docker 또는 runC와 함께 사용할 수 있는 외부 명령줄 도구를 만드는 것이었습니다.
9. dockerfile_lint
린터는 전면에서 툴체인을 개발하는 데 중요한 구성 요소입니다. JavaScript 개발자가 널리 사용하며 많은 개발자가 공유 코드베이스에서 작업할 때 특히 편리합니다. dockerfile_lint 는 Dockerfiles 용 규칙 기반 린터입니다 .
dockerfile_lint 규칙을 사용하여 파일 구문, 임의의 의미 체계 및 규칙 파일 작성자가 결정한 모범 사례 속성을 확인할 수 있습니다. 또한 Linter를 사용하여 Docker 이미지에 대한 LABEL 규칙을 확인할 수 있습니다. 규칙 파일은 YAML 로 작성됩니다 . 모든 규칙은 정규식을 사용하여 구현되며 한 번에 Dockerfile의 하나의 명령으로 실행할 수 있습니다. 규칙 파일은 4개의 섹션으로 구성됩니다.
- 프로필 섹션: 사용자가 특정 Dockerfile에 대해 적절한 규칙 파일을 선택하는 데 도움이 되는 규칙 파일에 대한 필수 정보를 제공합니다.
- 일반 섹션: 일반 구문 규칙을 포함합니다.
- 라인 규칙 섹션: Dockerfile의 지정된 명령에 대해 실행해야 하는 규칙이 포함되어 있습니다. 각 명령어의 구문을 확인하는 규칙이 있습니다.
- 필수 지침 섹션: 유효한 것으로 간주될 수 있도록 Dockerfile에 있어야 하는 지침 목록이 포함되어 있습니다.
10. 도커믹스
Dockermix 는 다중 컨테이너 Docker 환경을 개발하고 관리하는 데 사용되는 명령줄 도구입니다. 이 프로젝트에서 컨테이너 세트는 Docker API에서 사용 가능한 옵션을 에뮬레이트하는 YAML 형식으로 정의됩니다. Dockermix를 만드는 목적은 개발자가 테스트 및 개발을 위해 복잡한 다중 노드 환경을 손쉽게 시작, 조정 및 배포할 수 있도록 하는 것이었습니다.
Dockermix 프로젝트는 이제 Toscanini 조직 아래에서 개발이 진행 되면서 Maestro 로 이름이 변경되었습니다. 현재 소스 코드에 액세스하려면 Maestro 프로젝트 를 확인하세요 .
11. 도커 쿡북
Docker Cookbook 에는 Docker를 설치하고 Docker 컨테이너를 빌드, 관리 및 실행하는 데 필요한 모든 리소스가 포함되어 있습니다. 이 Docker 프로젝트는 Docker, Inc.에서 배포하는 Docker 컨테이너 엔진 에만 연결되며 Docker 에코시스템 도구 또는 Cgroups 또는 AUFS와 같은 기타 기술을 다루지 않습니다.
Docker Cookbook을 사용하려면 시스템에 Chef v12.15 이상이 설치되어 있어야 합니다. 쿡북은 Amazon Linux, Fedora, CentOS 7, Debian 8/9 및 Ubuntu 14.04/16.04를 포함한 여러 플랫폼에 대한 지원을 제공합니다. 또한 업스트림 Docker 패키지 리포지토리를 자동으로 설정할 수 있습니다.

12. 도쿠
Dokku 는 지금까지 개발된 것 중 가장 작은 PaaS 구현인 Docker 기반 mini-Heroku입니다. 이 PaaS 솔루션을 사용하면 사용자가 별도의 서버에 있는 프로덕션 환경에 애플리케이션을 구성하고 배포할 수 있습니다. 개발자가 애플리케이션의 전체 수명 주기를 빌드하고 관리할 수 있도록 Docker를 사용합니다.
모든 시스템에 Dokku를 설치할 수 있으며 저렴한 클라우드 제공업체에서도 사용할 수 있습니다. 또한 모든 언어로 Dokku 플러그인을 작성하고 온라인에서 공유하고 이미 사용 가능한 플러그인을 확장할 수 있습니다.
세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
마무리
이는 Docker를 기반으로 개발된 수많은 프로젝트 중 일부일 뿐입니다. 다음 프로젝트에 이러한 Docker 도구가 모두 필요한 것은 아니지만 다양한 옵션이 있다는 것을 아는 것이 좋습니다!
빅 데이터에 대해 자세히 알아보려면 upGrad & IIIT-B의 Full-stack Software Development의 Executive PG Program을 확인하십시오. 이 프로그램은 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제, IIIT를 제공합니다. -B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
