초보자를 위한 Docker 튜토리얼: 기본 사항, Archi강의, 컨테이너

Docker는 무엇입니까?

도커 동일한 호스트에서 실행되는 여러 운영 체제를 갖춘 가상화를 위한 소프트웨어 개발 플랫폼입니다. 소프트웨어를 신속하게 제공하기 위해 인프라와 애플리케이션을 분리하는 데 도움이 됩니다. VM(가상 머신)을 생성하는 데 사용되는 하이퍼바이저와 달리 Docker의 가상화는 Docker 컨테이너라고도 하는 시스템 수준에서 수행됩니다.

아래 이미지에서 차이점을 볼 수 있듯이 Docker 컨테이너는 호스트 운영 체제 위에서 실행됩니다. 이는 효율성과 보안을 향상시키는 데 도움이 됩니다. 게다가 컨테이너는 더 적은 리소스를 사용하므로 동일한 인프라에서 가상 머신을 실행할 수 있는 것보다 더 많은 컨테이너를 실행할 수 있습니다.

Docker와 Hypervisor의 가상화
Docker와 Hypervisor의 가상화

호스트의 하드웨어와 통신할 수 있는 VM(예: 더 많은 가상 어댑터를 생성하기 위한 이더넷 어댑터)과 달리 Docker 컨테이너는 호스트 OS 위에 있는 격리된 환경에서 실행됩니다. 호스트가 실행되더라도 Windows OS의 경우 다음을 사용하여 컨테이너에서 Linux 이미지를 실행할 수 있습니다. Hyper-V, 시스템의 기본 이미지를 가상화하기 위해 자동으로 작은 VM을 생성합니다. 이 경우 Linux.

도커를 사용하는 이유는 무엇입니까?

  • Docker는 가상화에 사용되는 컴퓨터 소프트웨어입니다. 운영 체제 동일한 호스트에서 실행 중
  • Docker는 클라이언트-서버 유형의 애플리케이션입니다. 즉, 서버에 중계하는 클라이언트가 있음을 의미합니다.
  • Docker 이미지는 컨테이너의 "소스 코드"입니다. 우리는 그것들을 사용하여 건물을 지어요
  • Dockerfile에는 두 가지 유형의 레지스트리가 있습니다. 1.) 공개 레지스트리와 2) 비공개 레지스트리
  • 컨테이너는 Docker 볼륨의 조직 단위입니다. 간단히 말해서 이미지는 템플릿이고 컨테이너는 해당 템플릿의 복사본입니다. 동일한 이미지의 여러 컨테이너(사본)를 가질 수 있습니다.

도커 Archi강의

이제 이 Docker 컨테이너 튜토리얼에서는 Docker의 Docker 주요 구성 요소에 대해 이야기하겠습니다. Archi강의:

도커 Archi강의
도커 Archi강의

도커 엔진

Docker는 클라이언트-서버 유형의 애플리케이션입니다. 즉, 서버에 중계하는 클라이언트가 있음을 의미합니다. 따라서 dockerd라는 Docker 데몬은 서버를 나타내는 Docker 엔진입니다. 도커 데몬과 클라이언트는 동일하거나 원격 호스트에서 실행될 수 있으며 명령줄 클라이언트 바이너리와 전체 호스트를 통해 통신합니다. RESTful API 데몬과 상호작용하려면: dockerd.

도커 이미지

Docker 이미지는 컨테이너의 "소스 코드"입니다. 우리는 그것들을 사용하여 컨테이너를 만듭니다. 배포 속도를 높이는 소프트웨어가 사전 설치되어 있을 수 있습니다. 이식 가능하며 기존 이미지를 사용하거나 자체 이미지를 구축할 수 있습니다.

도커 레지스트리

Docker는 우리가 빌드한 이미지를 레지스트리에 저장합니다. 공개 레지스트리와 비공개 레지스트리가 있습니다. Docker 회사에는 다음과 같은 공개 레지스트리가 있습니다. 도커 허브, 이미지를 비공개로 저장할 수도 있습니다. Docker 허브에는 수백만 개의 이미지가 있으며 지금 바로 사용할 수 있습니다.

고정 컨테이너

컨테이너는 조직 단위이며 Docker 기본 개념 중 하나입니다. 이미지를 빌드하고 실행을 시작하면; 우리는 컨테이너에서 실행 중입니다. 컨테이너 비유는 컨테이너에서 실행 중인 소프트웨어의 이식성 때문에 사용됩니다. 즉, 화물선이 실제 컨테이너로 할 수 있는 것처럼 소프트웨어를 이동, 즉 소프트웨어를 "배송"하고, 수정, 관리, 생성 또는 제거하고, 파괴할 수 있습니다.

간단히 말해서 이미지는 템플릿이고 컨테이너는 해당 템플릿의 복사본입니다. 동일한 이미지의 여러 컨테이너(사본)를 가질 수 있습니다.

아래에는 다양한 구성 요소 간의 상호 작용과 Docker 컨테이너 기술의 작동 방식을 완벽하게 나타내는 이미지가 있습니다.

우리가 가지고 있는 여러 docker 명령은 docker pull, docker run.. 이에 대해 더 자세히 이야기하겠습니다. later.

Linux/Ubuntu에 Docker를 설치하는 방법

다음은 Linux/Ubuntu에서의 단계별 Docker 설치 프로세스입니다.

1단계) Docker를 설치하려면 Docker 팀의 DEB 패키지를 사용해야 합니다.

이를 위해서는 일부 필수 Ubuntu 패키지가 필요합니다.

Ubuntu 패키지를 설치하려면 아래 명령을 사용하십시오.

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

*"\" 기호는 필요하지 않습니다. 새 줄에 사용됩니다. 원하는 경우 "\"를 사용하지 않고 한 줄에만 명령을 작성할 수 있습니다.

단계 2) 지문과 함께 공식 Docker GPG 키를 추가하세요.

아래 Docker 명령을 사용하여 GPG 키를 입력하세요.

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

단계 3) 다음으로 Docker APT 저장소를 추가합니다.

아래 Docker 명령을 사용하여 저장소를 추가하십시오.

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

리포지토리를 추가하고 GPG 키를 호스트에 자동으로 추가할지 확인하라는 메시지가 표시될 수 있습니다.

lsb_release 명령은 호스트의 Ubuntu 배포 버전을 채워야 합니다.

단계 4) GPG 키를 추가한 후,

아래 Docker 명령을 사용하여 APT 소스를 업데이트하세요.

$ sudo apt-get update

이제 Docker 패키지 자체를 설치할 수 있습니다.

단계 5) APT 소스가 업데이트되면,

아래 Docker 명령을 사용하여 Ubuntu에 Docker 패키지 설치를 시작하십시오.

$ sudo apt-get install docker-ce

위에 제공된 명령은 Docker 및 기타 추가 필수 패키지를 설치합니다. Docker 1.8.0 이전에는 패키지 이름이 lxc-docker 였고 Docker 1.8과 1.13 사이에는 패키지 이름이 docker-engine이었습니다.

주의사항: 도커 Windows 필요 Windows 10 Pro 또는 Enterprise 버전 14393, 또는 Windows 서버 2016 RTM 실행

기본 Docker 명령을 사용하여 Docker를 사용하는 방법

기본 Docker 명령을 사용하여 Docker를 사용하는 방법은 다음과 같습니다.

Docker 설치 후 실행해야 하는 가장 기본적인 명령은 앞서 말했듯 $ docker info 입니다.

$ sudo docker info

당신은 유사하거나 따라야합니다wing 결과

기본 Docker 명령을 사용하여 Docker 사용

위의 Docker 예에서 볼 수 있듯이, 실행 중, 일시 중지 또는 중지된 도커 컨테이너 수와 다운로드한 이미지 수에 대한 정보가 있습니다. 이제 이 Docker 명령 튜토리얼에서 첫 번째 이미지를 가져오겠습니다.

$ sudo docker pull alpine

이 명령을 사용하면 docker에게 alpine 이미지를 다운로드하고 기본적으로 설정되는 최신 버전인 공용 레지스트리에서 가져오도록 지시합니다.

*alpine은 완전한 패키지 인덱스와 크기가 5MB에 불과한 Alpine Linux 기반의 최소 Docker 이미지입니다.

이미지를 컨테이너로 실행하려면 다음을 사용합니다.wing 이 Docker 튜토리얼 가이드의 명령입니다.

$ sudo docker run -i -t alpine /bin/bash

명령을 실행하면 알파인의 터미널로 직접 이동됩니다. -i 플래그는 컨테이너에 연결되지 않은 경우에도 컨테이너에서 STDIN을 열어 둡니다. 이 지속적인 표준 입력은 대화형 셸에 필요한 것의 절반입니다. -t 플래그는 나머지 절반이며 Docker에게 컨테이너에 pseudo-tty를 할당하도록 지시합니다. 이는 새 컨테이너에 대화형 셸을 제공합니다. 간단한 종료 명령으로 컨테이너를 종료합니다.

이제 이 Docker 기본 튜토리얼에서 Ubuntu 이미지를 실행해 볼 수 있습니다.

$ sudo docker run -it ubuntu /bin/bash

Docker가 로컬에서 이미지를 확인하고, 이미지가 없으면 이미지 라이브러리에서 자동으로 이미지를 가져오고 다시 대화형 셸이 실행되는 것을 볼 수 있습니다. 컨테이너를 실행할 때 컨테이너 이름을 지정할 수도 있습니다.

$ sudo docker run –-name our_container -it ubuntu /bin/bash

그리고 우리는 다시 나갑니다.

대화형 셸 없이 이전에 만든 컨테이너를 실행할 수도 있습니다.

$ sudo docker start container_name

그리고 컨테이너 쓰기 docker stop Container_name을 중지합니다.

$ sudo docker stop container_name

실행 중인 모든 컨테이너를 보려면 다음을 실행하면 됩니다.

$ docker ps

그리고 모든 컨테이너에 대해 docker ps -a처럼 동일한 명령 끝에 "-a"를 추가합니다.

이 명령은 이미지가 생성되었을 때 사용하고 있던 컨테이너의 ID, 실행 상태, 노출된 포트, 컨테이너에 대해 임의로 생성된 이름을 표시하여 보다 쉽게 ​​관리할 수 있도록 합니다.

컨테이너를 실행할 때 컨테이너가 사용하는 리소스의 양도 알고 싶습니다. 이를 위해 명령을 사용할 수 있습니다.

$ docker stats

또한 로컬로 다운로드한 이미지와 이에 대한 정보를 확인할 수도 있습니다.

$ sudo docker images

위 Docker 예제의 명령은 이미지 버전, 고유한 이미지 ID, 생성 시기 및 이미지 크기를 보여주는 태그와 함께 docker 이미지를 표시합니다.

가상화란 무엇입니까?

이전에는 서비스 배포 프로세스가 느리고 힘들었습니다. 첫째, 개발자들은 코드를 작성하고 있었습니다. 그런 다음 운영 팀은 이를 베어 메탈 머신에 배포하고 코드가 작동하려면 라이브러리 버전, 패치 및 언어 컴파일러를 찾아야 했습니다. 버그나 오류가 있으면 프로세스가 처음부터 다시 시작되고 개발자가 이를 수정한 다음 다시 운영 팀이 배포를 위해 그곳에 갔습니다.

하이퍼바이저 생성으로 인해 개선이 이루어졌습니다. 하이퍼바이저에는 여러 가지 가상 머신 또는 실행 중이거나 꺼져 있을 수 있는 동일한 호스트의 VM. VM은 코드 배포 및 버그 수정을 위한 대기 시간을 크게 단축했지만 실제 게임 체인저는 Docker 컨테이너였습니다.

중요한 Docker 명령

다음은 중요한 Docker 명령입니다.

명령 상품 설명
도커 정보 정보사령부
도커 풀 이미지 다운로드
docker run -i -t image_name /bin/bash 이미지를 컨테이너로 실행
도커 시작 our_container 컨테이너 시작
docker stop 컨테이너_이름 컨테이너 중지
도커 ps 실행 중인 모든 컨테이너 목록
도커 통계 컨테이너 정보
도커 이미지 다운로드한 이미지 목록
도커 정리 실행 중인 모든 컨테이너를 종료합니다.

또한 읽으십시오 Docker 취업 면접 질문과 답변 경험이 풍부한 전문가뿐만 아니라 새로운 전문가에게도 적합합니다.

요약

  • Docker는 동일한 호스트에서 실행되는 여러 운영 체제를 사용하는 가상화를 위한 소프트웨어 개발 플랫폼입니다. 소프트웨어를 신속하게 제공하기 위해 인프라와 애플리케이션을 분리하는 데 도움이 됩니다.
  • 도커 Archi강의: Docker 엔진, Docker 이미지, Docker 레지스트리, Docker 컨테이너.
  • 도커 엔진: Docker는 클라이언트-서버 유형의 애플리케이션입니다. 즉, 서버에 중계하는 클라이언트가 있음을 의미합니다. 따라서 dockerd라는 Docker 데몬은 서버를 나타내는 Docker 엔진입니다.
  • 도커 이미지: Docker 이미지는 컨테이너의 "소스 코드"입니다. 우리는 그것들을 사용하여 컨테이너를 만듭니다. 배포 속도를 높이는 소프트웨어가 사전 설치되어 있을 수 있습니다. 이식 가능하며 기존 이미지를 사용하거나 자체 이미지를 구축할 수 있습니다.
  • 도커 레지스트리: Docker는 우리가 빌드한 이미지를 레지스트리에 저장합니다. 공개 레지스트리와 비공개 레지스트리가 있습니다. Docker 회사에는 Docker 허브라는 공개 레지스트리가 있으며, 여기에 이미지를 비공개로 저장할 수도 있습니다. Docker 허브에는 수백만 개의 이미지가 있으며 지금 바로 사용할 수 있습니다.
  • 도커 컨테이너: 컨테이너는 조직 단위이며 Docker 기본 개념 중 하나입니다. 이미지를 빌드하고 실행을 시작하면; 우리는 컨테이너에서 실행 중입니다. 컨테이너 비유는 컨테이너에서 실행 중인 소프트웨어의 이식성 때문에 사용됩니다.