Docker 자습서 – Docker 및 컨테이너화 소개



이 Docker 자습서에서는 Docker의 필요성을 이해하고 Docker를 소개합니다. Docker 튜토리얼 시리즈의 첫 번째 블로그입니다.

이전 DevOps 자습서 블로그 시리즈를 놓치지 않았기를 바랍니다. 통과 여기.Docker 컨테이너의 억제 할 수없는 추세가 성장하고 있으며 조직은 다음을 보유한 전문가를 찾고 있습니다. .이번에는 Docker 소개에 대해 설명하겠습니다.

Docker 튜토리얼

이 Docker Tutorial 블로그는 새로운 시대의 컨테이너화 기술인 Docker에 대한 개념적이고 실용적인 노출을 제공합니다.





이 블로그에서는 아래 주제에 초점을 맞출 것입니다.

  • 가상화 란 무엇입니까?
  • 컨테이너화 란?
  • 가상화에 비해 컨테이너화의 이점
  • Docker 소개
  • Docker의 이점
  • 가상화 vs 컨테이너화
  • Docker 설치
  • Dockerfile, Docker 이미지 및 Docker 컨테이너
  • Docker Hub 란 무엇입니까?
  • Docker 아키텍처
  • Docker 작성

Docker는 인기를 얻고 있으며 그 사용은 산불처럼 확산되고 있습니다. Docker의 인기가 높아지는 이유는 IT 조직에서 사용할 수있는 정도 때문입니다. 개발자와 시스템 관리자 모두에게 유용한 기능을 제공하는 도구는 거의 없습니다. Docker는 진정으로 약속에 부합하는 도구 중 하나입니다. 짓다 , 운영 .



간단히 말해서 Docker는 소프트웨어 컨테이너화 플랫폼입니다. 즉, 애플리케이션을 빌드하고 해당 종속성과 함께 컨테이너에 패키징 한 다음 이러한 컨테이너를 쉽게 배송하여 다른 머신에서 실행할 수 있습니다.

예를 들면 : Ruby와 Python으로 작성된 Linux 기반 애플리케이션을 고려해 보겠습니다. 이 애플리케이션에는 특정 버전의 linux, Ruby 및 Python이 필요합니다. 사용자 측에서 버전 충돌을 방지하기 위해 필요한 버전의 Ruby 및 Python을 애플리케이션과 함께 설치하여 Linux Docker 컨테이너를 만들 수 있습니다. 이제 최종 사용자는 종속성이나 버전 충돌에 대한 걱정없이이 컨테이너를 실행하여 애플리케이션을 쉽게 사용할 수 있습니다.

이러한 컨테이너는 가상화의 진화 된 버전으로 간주 될 수있는 컨테이너화를 사용합니다. 가상 머신을 사용하여 동일한 작업을 수행 할 수도 있지만 그다지 효율적이지는 않습니다.



일반적으로이 시점에서 질문을받습니다. 즉 가상화와 컨테이너화의 차이점은 무엇입니까? 이 두 용어는 서로 매우 유사합니다. 먼저 가상화 란 무엇입니까?

가상화 란 무엇입니까?

가상화는 호스트 운영 체제 위에 게스트 운영 체제를 가져 오는 기술입니다. 이 기술은 개발자가 모두 동일한 호스트에서 실행되는 서로 다른 가상 머신에서 여러 운영 체제를 실행할 수 있도록했기 때문에 처음에는 획기적이었습니다. 따라서 추가 하드웨어 리소스가 필요하지 않습니다. 가상 머신 또는 가상화의 장점은 다음과 같습니다.

  • 동일한 시스템에서 여러 운영 체제를 실행할 수 있습니다.
  • 고장시 유지 보수 및 복구가 쉬움
  • 인프라에 대한 필요성 감소로 인해 총 소유 비용도 감소했습니다.

가상 머신 아키텍처-Docker 소개에 대한 Docker 자습서-Edureka

오른쪽 다이어그램에서 가상 머신에 불과한 3 개의 게스트 운영 체제가 실행중인 호스트 운영 체제가 있음을 알 수 있습니다.

완벽한 것은 없다는 것을 알다시피 가상화에도 몇 가지 단점이 있습니다. 동일한 호스트 운영 체제에서 여러 가상 머신을 실행하면 성능이 저하됩니다. 이는 자체 커널과 라이브러리 및 종속성 세트가있는 호스트 OS 위에서 실행되는 게스트 OS 때문입니다. 이것은 하드 디스크, 프로세서 및 특히 RAM과 같은 시스템 리소스의 큰 덩어리를 차지합니다.

가상화를 사용하는 가상 머신의 또 다른 문제는 부팅하는 데 거의 1 분이 걸린다는 것입니다.이것은 실시간 애플리케이션의 경우 매우 중요합니다.

다음은 가상화의 단점입니다.

  • 여러 가상 머신을 실행하면 성능이 불안정 해집니다.
  • 하이퍼 바이저는 호스트 운영 체제만큼 효율적이지 않습니다.
  • 부팅 프로세스가 길고 시간이 걸립니다.

이러한 단점은 컨테이너화라는 새로운 기술의 출현으로 이어졌습니다. 이제 컨테이너화에 대해 말씀 드리겠습니다.

자바 tostring 사용 방법

컨테이너화 란 무엇입니까?

컨테이너화는 가상화를 운영 체제 수준으로 가져 오는 기술입니다. 가상화는 하드웨어에 추상화를 가져 오는 반면 컨테이너화는 운영 체제에 추상화를 가져옵니다. 컨테이너화는 가상화의 한 유형이기도합니다. 그러나 여기에는 게스트 OS가없고 호스트의 운영 체제를 활용하고 가상 머신과 달리 필요할 때 관련 라이브러리 및 리소스를 공유하므로 컨테이너화가 더 효율적입니다. 애플리케이션 별 바이너리 및 컨테이너 라이브러리는 호스트 커널에서 실행되므로 처리 및 실행이 매우 빠릅니다. 컨테이너를 부팅하는데도 1 초 밖에 걸리지 않습니다. 모든 컨테이너가 공유하기 때문에 운영 체제를 호스팅하고 애플리케이션 관련 바이너리 및 라이브러리 만 보유합니다. 가상 머신보다 가볍고 빠릅니다.

가상화에 비해 컨테이너화의 이점 :

  • 동일한 OS 커널의 컨테이너가 더 가볍고 작습니다.
  • VM에 비해 더 나은 리소스 활용도
  • 부팅 프로세스가 짧고 몇 초가 걸립니다.

오른쪽 다이어그램에서 모든 컨테이너가 공유하는 호스트 운영 체제가 있음을 알 수 있습니다. 컨테이너에는 각 컨테이너에 대해 분리 된 애플리케이션 별 라이브러리 만 포함되며 더 빠르고 리소스를 낭비하지 않습니다.

이러한 모든 컨테이너는 호스트 운영 체제에 고유하지 않은 컨테이너화 계층에서 처리됩니다. 따라서 호스트 운영 체제에서 컨테이너를 만들고 실행할 수있는 소프트웨어가 필요합니다.

Docker에 대한 깊은 이해는이 Docker 튜토리얼 비디오를 확인하십시오.

초보자를위한 Docker 튜토리얼 | Docker 란 무엇입니까? | DevOps 도구 | Edureka

이제 Docker에 대해 소개하겠습니다.

Docker 자습서 – Docker 소개

Docker는 애플리케이션과 모든 종속성을 컨테이너 형태로 함께 패키징하여 애플리케이션이 모든 환경에서 원활하게 작동하도록하는 컨테이너화 플랫폼입니다.

mongodb는 무엇을 위해 사용됩니까?

오른쪽 다이어그램에서 볼 수 있듯이 각 애플리케이션은 별도의 컨테이너에서 실행되며 자체 라이브러리 및 종속성 세트를 갖습니다. 이는 또한 각 애플리케이션이 다른 애플리케이션과 독립적임을 의미하는 프로세스 수준 격리를 보장하므로 개발자가 서로 간섭하지 않는 애플리케이션을 구축 할 수 있다는 확신을줍니다.

개발자로서 저는 다른 애플리케이션이 설치된 컨테이너를 구축하여 개발자 환경을 복제하기 위해 컨테이너를 실행하기 만하면되는 QA 팀에 제공 할 수 있습니다.

Docker의 이점

이제 QA 팀은 코드를 테스트하기 위해 모든 종속 소프트웨어와 응용 프로그램을 설치할 필요가 없으며 이는 많은 시간과 에너지를 절약하는 데 도움이됩니다. 이를 통해 개발부터 배포까지 프로세스에 관련된 모든 개인이 작업 환경을 일관되게 유지할 수 있습니다. 시스템 수를 쉽게 확장 할 수 있으며 코드를 쉽게 배포 할 수 있습니다.

가상화 vs 컨테이너화

가상화 및 컨테이너화를 통해 호스트 머신 내에서 여러 운영 체제를 실행할 수 있습니다.

가상화는 단일 호스트 시스템에서 많은 운영 체제를 만드는 것을 다룹니다. 반면 컨테이너화는 필요에 따라 모든 유형의 애플리케이션에 대해 여러 컨테이너를 생성합니다.

그림: 빅 데이터 분석이란? – 가상화 대 컨테이너화

이미지에서 볼 수 있듯이 가장 큰 차이점은 가상화에는 컨테이너화에없는 게스트 운영 체제가 여러 개 있다는 것입니다. 컨테이너화의 가장 큰 장점은 무거운 가상화에 비해 매우 가볍다는 것입니다.

이제 Docker를 설치하겠습니다.

Docker 설치 :

Ubuntu 17.10 컴퓨터에 Docker를 설치할 것입니다. 다음은 Docker를 설치하는 단계입니다.

  1. 필수 패키지 설치
  2. Docker 저장소 설정
  3. Ubuntu에 Docker 설치

1. 필수 패키지 설치 :

Docker를 설치하기 위해 시스템에 필요한 특정 패키지가 있습니다. 아래 명령을 실행하여 해당 패키지를 설치하십시오.

sudo apt-get install curl apt-transport-https ca-certificates software-properties-common

2. Docker 저장소 설정 :

이제 Dockers 공식 GPG 키를 가져 와서 apt-get으로 패키지를 설치하기 전에 패키지 서명을 확인하십시오. 터미널에서 아래 명령을 실행하십시오.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key 추가

이제 종속성을 포함한 Docker 패키지가 포함 된 Ubuntu 시스템에 Docker 저장소를 추가하여 아래 명령을 실행합니다.

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable'

3. Ubuntu에 Docker를 설치합니다.

이제 apt 인덱스를 업그레이드하고 Docker 커뮤니티 에디션을 설치해야합니다.이를 위해 아래 명령을 실행하십시오.

sudo apt-get 업데이트 sudo apt-get install docker-ce

축하합니다! Docker를 성공적으로 설치했습니다. 또한 일반적으로 사용되는 몇 가지를 확인하십시오. Docker 명령 .

이제 몇 가지 중요한 Docker 개념을 살펴 보겠습니다.

Dockerfile, Docker 이미지 및 Docker 컨테이너 :

  1. Docker 이미지는 Dockerfile이라는 파일에 작성된 일련의 명령에 의해 생성됩니다.
  2. 이 Dockerfile이 docker 명령을 사용하여 실행되면 이름이있는 Docker 이미지가 생성됩니다.
  3. 이 이미지가 'docker run'명령으로 실행되면 실행시 시작해야하는 모든 응용 프로그램이나 서비스를 자체적으로 시작합니다.

Docker 허브 :

Docker Hub는 Docker 이미지 용 GitHub와 같습니다. 기본적으로 다른 커뮤니티에서 업로드 한 Docker 이미지를 찾을 수있는 클라우드 레지스트리이며, 고유 한 이미지를 개발하고 Docker Hub에 업로드 할 수도 있지만 먼저 DockerHub에서 계정을 만들어야합니다.

Docker 아키텍처 :

세 가지 주요 구성 요소가있는 클라이언트-서버 애플리케이션 인 Docker Engine으로 구성됩니다.

  1. 데몬 프로세스 (도커 명령)라고하는 장기 실행 프로그램 유형 인 서버.
  2. 프로그램이 데몬과 통신하고 수행 할 작업을 지시하는 데 사용할 수있는 인터페이스를 지정하는 REST API입니다.
  3. CLI (명령 줄 인터페이스) 클라이언트 (도커 명령).
  4. CLI는 Docker REST API를 사용하여 스크립팅 또는 직접 CLI 명령을 통해 Docker 데몬을 제어하거나 상호 작용합니다. 다른 많은 Docker 애플리케이션은 기본 API 및 CLI를 사용합니다.

자세한 내용은이 블로그를 참조하십시오. .

마지막으로이 Docker Tutorial 블로그에서 Docker Compose에 대해 이야기 할 것입니다.

Docker 작성 :

Docker Compose는 기본적으로 여러 Docker 컨테이너를 단일 서버로 실행하는 데 사용됩니다. 예를 들어 보겠습니다.

WordPress, Maria DB 및 PHP MyAdmin이 필요한 애플리케이션이 있다고 가정합니다. 각 컨테이너를 개별적으로 시작할 필요없이 두 컨테이너를 서비스로 시작하는 하나의 파일을 만들 수 있습니다. 특히 마이크로 서비스 아키텍처가있는 경우 특히 유용합니다.

자바의 익명 클래스]

내 블로그 참조 Docker 컨테이너 실제로 실행하는 방법을 이해합니다.

또한 Docker Compose를 사용하여 평균 스택 애플리케이션을 컨테이너화하는 방법에 대한이 블로그를 읽을 수 있습니다.

이것으로 Docker 및 컨테이너화 소개에 대한 Docker Tutorial의 첫 번째 블로그를 마칩니다.

Docker에 대한 다음 블로그를 살펴보십시오.

이제 DevOps가 무엇인지 이해 했으므로 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka DevOps 인증 교육 과정은 학습자가 SDLC에서 여러 단계를 자동화하기 위해 Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack 및 GIT와 같은 다양한 DevOps 프로세스 및 도구에 대한 전문 지식을 습득하는 데 도움이됩니다.

질문이 있으십니까? 의견란에 언급 해 주시면 연락 드리겠습니다.