Docker 소개 - Docker 시리즈 1부

Docker 소개


가상 용기의 많은 생각들은 물리 용기의 역사적 사용과 관련이 있다.전통적으로 컨테이너는 우리가 서로 다른 유형의 물품을 분리하고 저장하며 하나의 전체(예를 들어 운송선, 창고 등)에 실어 나르는 것을 허락한다.계산 분야에서 용기화는 우리가 한 호스트에서 여러 개의 가상 운영체제를 분리하고 운행할 수 있게 한다.Docker가 제공하는 기능은 이러한 가상 시스템과 상호작용을 간단하게 만듭니다.

컨테이너화와 가상 기기


가상 기기에 익숙한 독자들은 용기가 유사한 역할을 하는 것 같다는 것을 알 수 있다. 이것이 옳다.그러나 용기는 관건적인 장점을 가지고 있기 때문에 대부분 상황에서 더 좋은 선택을 할 수 있다.가상 컴퓨터는hypervisor라는 소프트웨어를 사용하여 전체 가상 운영체제(가상 핵 포함)를 시뮬레이션한다.다른 한편, Docker는 호스트 운영체제의 핵만 사용하여 용기의 운영체제를 모의할 수 있는 백엔드 프로세스(수호 프로세스)를 사용한다.이는 부팅 시간, CPU 메모리 수요와 계산 속도를 크게 줄여 사용자들에게 대량의 자금을 절약할 수 있다(특히 클라우드 서비스 공급자를 사용할 때).

Docker의 장점 및 활용 사례


Docker는 대량의 기능과 풍부한 생태계를 제공했기 때문에 Docker라는 가장 유행하는 용기 시스템을 사용하면 많은 장점이 있다.다음 중 가장 눈에 띄는 몇 가지 특징이 나열되어 있으며, 향후 게시물에서는 이에 대해 더 자세히 소개할 것입니다.
  • 소프트웨어를 개발할 때 개발자 기기의 환경과 의존 관계가 원격 서버의 환경과 의존 관계와 같다는 것을 확보하기 어렵다.소프트웨어는 로컬 컴퓨터의 동작과 동일하게 작동하는지 확인하기 위해 용기에 불러와 서버로 전송할 수 있다.
  • Docker 컨테이너는 다양한 상호 연결 방식을 제공하여 컨테이너 네트워크를 형성할 수 있다.
  • Docker 주변에 큰 지역사회가 형성되었다.다른 사용자의 컨테이너 청사진(일반적으로 Docker 이미지라고 함)을 사용하여 새 Docker 컨테이너를 빠르게 설정할 수 있습니다.DockerHub 덕분에 많은 데이터베이스, 모니터링 도구 및 기타 복잡한 소프트웨어를 즉시 초기화할 수 있습니다.
  • 많은 도구와 클라우드 공급자들이 Docker 통합을 제공한다. 이것은 업계 표준이기 때문이다.
  • Docker 설치


    Windows 및 Mac 설치 프로그램은 Docker Hub에서 설치할 수 있습니다.Linux 시스템의 경우 명령줄을 사용해야 합니다.다음은 Ubuntu에 Docker를 설치하는 방법입니다.
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt-get update
    sudo apt-get install -y docker-ce
    sudo service docker start
    sudo docker run hello-world
    이전 코드는 Docker를 설치한 다음 데몬을 시작합니다.Docker가 시작되고 실행되면 컴퓨터에서 "Hello World"용기를 실행하려고 시도합니다. Docker가 컴퓨터에서 이 이름의 "이미지"를 찾을 수 없으면 DockerHub에서 다운로드를 시도합니다.만약 모든 것이 정상이라면, 당신은 "Hello World"힌트를 보게 될 것입니다.

    Docker의 이미지는 도대체 무엇입니까?


    docker 이미지는 docker 용기의 청사진으로 볼 수 있습니다. 모든 docker 용기는 docker 이미지로 구축됩니다.네가 처음 컴퓨터를 시작했을 때, 네가 처음 취한 절차가 무엇인지 생각해 봐라.필요한 소프트웨어를 설치하고 설정을 했을 수도 있습니다.본질적으로 용기를 구축하기 위한 절차의 컴파일 목록이기 때문에, 도커 이미지를 비슷한 방식으로 고려할 수 있습니다.이러한 단계는 Dockerfile에서 정의합니다. 이 시리즈의 다음 섹션에서는 이러한 단계를 만드는 방법에 대해 설명합니다.

    DockerHub은 무엇입니까?


    Docker에는 많은 사용자가 있는데, 그중 많은 사람들이 DockerHub 서비스를 통해 그들의 Docker 그림을 공개했다.대부분의 소프트웨어는 docker 이미지 형식으로 제공되며, 몇 초 안에 다운로드하고 실행할 수 있으며, 이를 설치하거나 자신의 이미지를 정의할 필요가 없다.DockerHub의 이미지는 버전 지정되므로 기술 스택에 가장 적합한 이미지를 선택할 수 있습니다.많은 회사들이 실제적으로 그들의 소프트웨어를 위해 공식적인 docker 이미지를 만들고 발표했는데, 이것은 어느 정도에 용기가 예상한 대로 작동할 것을 보장한다.DockerHub은 이러한 모든 기능을 제공하므로 설치하려는 일부 소프트웨어의 이미지가 있는지 항상 확인하는 것이 좋습니다.

    DockerHub는 자신의 Docker 그림을 올릴 수도 있습니다.이것은 몇 가지 장점이 있다. 더 많은 사용자에게 유용할 수 있는 이미지를 만들어서 지역 사회를 돕거나, 응용 프로그램 용기를 개인 이미지로 업로드한 다음, Docker 클라이언트를 사용하여 원격 서버에 직접 다운로드할 수 있다.

    레이블을 사용한 이미지 버전 제어


    Docker에는 컨테이너 이미지에 대한 버전 제어 시스템(레이블)이 있습니다.DockerHub에서는 구성할 특정 이미지의 버전을 선택할 수 있는 각 이미지의 레이블 목록을 볼 수 있습니다.일반적으로 컨테이너에서 실행되는 소프트웨어 버전과 관련이 있지만 특정 설정 또는 구성도 포함될 수 있습니다.예를 들어 많은 공급업체들이 용기 이미지에 대한 라벨을 발표하는데 이런 라벨은 Alpine Linux을 바탕으로 한다. 이것은 매우 가벼운 리눅스 버전으로 용기에서 실행하기 위해 설계된 것이다.

    환경 변수


    어떤 운영체제에서나 마찬가지로 Docker 용기는 환경 변수를 가지고 시스템에 설치된 구성 요소의 행동을 정의하는 데 도움을 줄 수 있습니다.DockerHub의 이미지에는 일반적으로 컨테이너가 만들어진 후 사용자가 소프트웨어를 사용자 정의할 수 있도록 설정된 환경 변수 목록이 설명되어 있습니다.

    좋은 이미지가 뭐예요?

  • Docker 이미지가 "공식"이미지인 경우 고품질 표준에 부합한다고 가정할 수 있음
  • 이미지는 불필요한 오버헤드 없이 작업을 수행하는 데 필요한 구성 요소만 설치
  • 설명 환경 변수
  • 를 사용하여 컨테이너를 구성할 수 있습니다.
  • 이것은 광범위한 라벨을 제공하여techstack
  • 과 함께 사용하는 구 버전 소프트웨어를 선택할 수 있도록 한다.
  • Docker 이미지가 많은 사람들이 사용하도록 확보하고 보통 특정 이미지의 다운로드 횟수와 스타 수를 통해 표시한다
  • 일부 도구(예를 들어 Anchore)는 이미지를 분석하고 설정의 모든 안전 결함을 검사하는 데 도움을 줄 수 있습니다
  • 이미지 추출


    이 예에서는 공식 MySQL 이미지를 사용합니다.다음 코드를 실행한 후 docker가 MySQL 이미지를 다운로드하기 시작하는 것을 보았습니다.
    docker pull mysql:8
    너는 내가 왜 그림의 이름에':8'을 붙였는지 알고 싶을 것이다.위에서 말한 바와 같이 이미지에는 일반적으로 이 이미지의 다른 버전을 대표하는 라벨이 있을 수 있다.이 문법을 사용하면 '8' 표시와 관련된 이미지 버전을 추출하고 싶습니다. 이 예에서 MySQL 버전 8을 실행하는 용기의 이미지를 얻을 수 있습니다.기본적으로 태그가 지정되지 않은 경우 업로드된 최신 이미지가 제공됩니다("latest"를 태그로 설정하여 검색할 수도 있습니다).나는 보통 내 docker 그림에 탭을 지정해서 문제가 생겼을 때 어떤 버전을 인용해야 하는지 알 수 있다. 물론 이것은 개인적인 선호이다.

    컨테이너 구축 및 실행


    일단 끌어내면, docker는 나중에 사용할 수 있도록 우리의 그림을 저장할 것입니다.그림을 용기에 사용하려면 용기를 구축하고 시작해야 합니다.주의: 로컬에 존재하지 않는 이미지를 기반으로 용기를 실행하려고 명령을 실행하면, docker는 자동으로 센터에서 이 이미지를 다운로드합니다.
    docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=password -d mysql:8
    앞의 명령은 'mysql container' 라는 용기를 구축하고 실행합니다.MySQL 이미지에는 특정 이미지에 특정한 매개 변수를 지정할 수 있는 매개 변수가 있습니다.일반적으로 DockerHub에서 지정된 이미지에 사용할 수 있는 매개 변수(또는 환경 변수)를 볼 수 있습니다.공식 MySQL 이미지의 변수를 검사할 때 MySQL ROOT PASSWORD 변수가 사실상 강제적이라는 것을 알 수 있다.명령줄을 통해 컨테이너를 실행할 때, 우리는 정의할 변수마다 모드 - e MY ENVIRONMENT VARIABLE=myvalue를 반복하기를 원합니다.
    이전 명령을 입력할 때, 새 용기가 우리가 정의한 그림으로 만들어졌는지 확인하고 싶습니다.다음 명령을 입력합니다.
    docker ps
    docker stop mysql-container
    첫 번째 명령은 실행 중인 모든 용기를 보여 줍니다.두 번째 명령은 우리가 전달한 이름을 매개 변수로 하는 용기를 정지합니다. 이 예는 'mysql 용기' 입니다.첫 번째 명령은 우리의 용기가 실제로 실행 중이라는 것을 보여 주기를 바랍니다.다음 자습서에서는 사용 가능한 다양한 Docker 명령을 자세히 살펴보겠습니다.

    좋은 웹페이지 즐겨찾기