Udacity | SUSE: 편성 - 선착장 일꾼

This is the fifth article in the series, Udacity: SUSE Cloud Native Foundations. In this third installment, you'll get to learn what containers are, specifically Docker. Discussed as well is Kubernetes which is used for orchestrating containers.

This section is actually part of a single lesson, Container Orchestration using Kubernetes, but since it'll be too long, I've decided to put Kubernetes on the next article.


일단 응용 프로그램이 개발되면 다음 단계는 이를 포장하고 컨테이너화하며 마지막으로 배치하는 것이다.여기에서, 우리는 Docker 용기를 사용하여 프로그램을 포장하고, 대규모로 용기를 관리하기 위해 Kubernetes 그룹을 배치할 것입니다.

VM에서 컨테이너로


응용 프로그램을 배치하는 전통적인 방식은 가상 기기나 가상 기기를 통과하는 것이다.응용 프로그램은 운영체제 파일 시스템, 운영체제 자원, 설치된 기본 패키지를 사용합니다.
가상 머신은 인프라를 최대한 활용하는 데 매우 효율적이다.우리는 물리적 시스템에서 하나의 응용 프로그램을 실행할 필요가 없고, 물리적 시스템의 가상 시스템 모니터링 프로그램에서 여러 개의 가상 시스템을 실행할 수 있다.

비록 그것이 유용하다는 것이 증명되었지만, 그것도 자신의 결점이 있다.각 가상 시스템은 자체 운영 체제를 필요로 합니다.만약에 가상 기기 모니터링 프로그램에 세 개의 가상 기기가 있다면 이것은 가상 기기 모니터링 프로그램에 세 개의 운영체제가 운행하고 있다는 것을 의미한다.운영체제에 모든 가상 기기가 필요로 하는 라이브러리를 더하면 밑바닥 기기의 큰 공간을 차지할 것이다.

입력 컨테이너.서버의 사용을 더욱 최적화하기 위해 용기를 사용하여 운영체제를 가상화할 수 있다.컨테이너를 통해 우리는 복제된 운영체제를 실행할 필요가 없다.우리가 기계에서 몇 개의 용기를 운행하든지 간에, 그들은 물리 기계 자체의 같은 하부 조작 시스템을 사용할 것이다.
컨테이너의 생성과 관리를 편리하게 하기 위해서, 우리는 컨테이너 엔진 도구, 예를 들어 Docker를 사용할 수 있다.전체적으로 컨테이너는 다음과 같다.
  • 천연 경질
  • 리소스 활용도 향상

    부두 노동자



    일단 네가 이 소프트웨어를 실현한다면 다음 단계는 그것을 발표하는 것이다.이러한 단계는 주로 다음과 같습니다.
  • 하나의 컨테이너에 소스 코드, 구성 파일 및 종속 항목 묶기
  • 컨테이너 관리자 사용
  • 배포
    여기에 세 개의 docker 대상이 있습니다:
    docker 파일, docker 이미지, docker 등록표.

    Docker 파일


    이것은 그림을 만드는 방법에 대한 단계별 설명입니다
    코드 및 의존항을 어떻게 포장하는지에 대한
  • 조작
  • 각 작업은 계층을 나타내고
  • 캐시
  • dockerfile을 수정하면 변경된 도면층은
  • 만 생성됩니다
    완전한 설명 목록은 공식 Docker website에서 찾을 수 있다.다음은 널리 사용되는 몇 가지 설명입니다.

  • FROM - 기본 이미지 설정

  • 실행 - 명령 실행

  • 복제 및 추가 - 호스트에서 컨테이너로 파일 복제

  • 명령이 실행될 때 기본값은 1041810입니다

  • 노출 - 노출 포트
  • For the exercises, you can check out the next article in this series


    다음은 Python hello world 응용 프로그램을 패키지화하는 것을 목표로 하는 Dockerfile의 예입니다.
    # set the base image. A Python base image is used
    FROM python:3.8
    
    # set a key-value label for the Docker image
    LABEL maintainer="Eden Jose"
    
    # All the files in the current directory is copied
    # to the  `/app` directory in the container
    COPY . /app
    
    #  defines the working directory within the container
    WORKDIR /app
    
    # run commands within the container. 
    # Here we install dependencies defined in the requirements.txt file. 
    RUN pip install -r requirements.txt
    
    # provide a command to run on container start. 
    # For example, start the `app.py` application.
    CMD [ "python", "app.py" ]
    

    Docker 이미지


    docker 파일을 만든 후 docker 이미지를 만들 수 있습니다.
  • 읽기 전용 템플릿
  • 애플리케이션 생성
  • 실행 사례
  • 컨테이너 실행용
  • 기존 Docker 파일에서 Docker 이미지를 생성하려면 Docker build 명령을 사용합니다.다음은 이 명령의 구문입니다.
    # build an image
    # OPTIONS - optional;  define extra configuration
    # PATH - required;  sets the location of the 
    # Dockefile and  any referenced files 
    docker build [OPTIONS] PATH
    
    # Where OPTIONS can be:
    -t, --tag - set the name and tag of the image
    -f, --file - set the name of the Dockerfile
    --build-arg - set build-time variables
    
    build 명령에 대해 유효한 옵션을 모두 찾으려면 다음과 같이 하십시오.
    docker build --help
    
    예를 들어, 현재 디렉토리의 Dockerfile에서 Python Hello World 응용 프로그램 이미지를 구축하려면 다음 명령을 사용합니다.
    docker build -t python-helloworld .
    
    또한 다른 디렉토리(예: lesson1/python-app 디렉토리)에 있는 동일한 응용 프로그램을 구축할 수 있습니다.
    docker build -t python-helloworld lesson1/python-app
    
    사용 가능한 모든 이미지 나열
    docker images
    
    로컬에서 이미지를 테스트하려면 docker 이미지를 사용하여 컨테이너를 실행합니다.
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    
    # OPTIONS - optional;  define extra configuration
    # IMAGE -  required; provides the name of the image to be executed
    # COMMAND and ARGS - optional; instruct the container to run specific commands when it starts 
    # Where OPTIONS can be:
    
    -d, --detach - run in the background 
    -p, --publish - expose container port to host
    -it - start an interactive shell
    
    이 명령에 대한 모든 유효한 옵션 찾기
    docker run --help
    
    예를 들어, 예제 Python hello world 응용 프로그램을 실행하는 데 사용할 이미지는 다음과 같습니다.
    docker run -d -p 5111:5000 python-helloworld
    
    Docker 컨테이너 포트(5000)를 호스트(5111)나 로컬 시스템의 포트에 연결합니다.응용 프로그램을 보려면 브라우저에서 http://127.0.0.1:5111/을 엽니다.5000은 응용 프로그램이 전송 요청을 탐지하는 용기 포트입니다.
    실행 중인 모든 용기를 열거하려면
    docker ps
    
    Docker 컨테이너 로그를 검색하려면 다음 명령을 사용할 수 있습니다. 여기서 95173091eb5e은 컨테이너 ID입니다.
    docker logs 95173091eb5e
    
    ## Example output from a Flask application
     * Serving Flask app "app" (lazy loading)
     * Environment: production
       WARNING: This is a development server. Do not use it in a production deployment.
       Use a production WSGI server instead.
     * Debug mode: off
    

    Docker 레지스트리


    프로그램이 포장되어 로컬에서 테스트를 하고 예상한 행동에 부합한다는 것을 증명하면 저장하고 나누어 줄 수 있다.
    이를 위해 공용 Docker 이미지 레지스트리로 이미지를 밀어넣을 수 있습니다. 예를 들어,
  • DockerHub
  • 아마존 ECR(탄성 용기 등록)
  • 구글 용기 등록표
    또한 이미지를 개인 등록 센터에 저장하여 권한 수여자가 사용할 수 있도록 할 수 있습니다.
    Docker 레지스트리로 이미지를 밀어넣기 전에 먼저 이미지를 표시하는 것이 좋습니다.레이블이 없는 경우 이미지는 제작 단계에서 임의 ID로 지정됩니다.
    라벨은 또한 버전 제어를 제공합니다. 왜냐하면 새로운 라벨은 새로운 버전을 표시하기 때문입니다.로컬 컴퓨터에 기존 이미지를 표시하려면
    # tag an image
    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    
    # SOURCE_IMAGE[:TAG]  
    # - required and the tag is optional; 
    # - defines the name of an image on the current machine 
    
    # TARGET_IMAGE[:TAG] 
    # - required and the tag is optional;
    # - defines the repository, name, and version of an image
    
    DockerHub에 로그인
    docker login
    
    그림을 표시한 후, 마지막 단계는 그림을 등록표로 전송하는 것입니다.
    docker push NAME[:TAG]
    
    # NAME[:TAG] - required and the tag is optional; 
    # - name, set the image name to be pushed to the registry
    
    예를 들어, v1 표시가 있는 예시 Python hello world 프로그램을 Docker Hub의 'my repo' 저장소로 전송합니다.
    docker push my-repo/python-helloworld:v1.0.0
    
    DockerHub에서 이미지를 추출하려면
    docker pull NAME[:TAG]
    

    네가 읽을 수 있는 기타 참고 자료


    Dockerfiles 모범 사례 및 효과적인 설명 목록을 찾습니다.
  • Dockerfile reference
  • Best practices for writing Dockerfiles
  • Docker 이미지를 구축하고 실행하는 방법과 사용 가능한 모든 옵션의 목록을 탐색합니다.
  • Docker Build command
  • Docker Run command
  • Docker 레지스트리, 패키지 응용 프로그램 대안 및 OCI 표준을 탐색합니다.
  • Introduction to Docker registry
  • Docker Tag command
  • Docker Push command
  • Open Container Initiative (OCI) Specifications
  • Buildpacks: An App’s Brief Journey from Source to Image
  • 물론 새로운 기술을 배워서 손을 더럽히지 않으면 완전하지 않다.다음 글을 읽고 이미지를 만들어 자신의 Dockerhub 계정으로 전송해 보십시오!😃

    If you enjoy this write-up and would like to learn more, make sure to hit the Follow just below and bookmark the series. I'll also be glad to connect with you on .

    See you there!
    😃



    .ltag__user__id__350730.작업 따르기 버튼
    배경색: #7eb4fb!중요
    색상: #fcef98!중요
    테두리 색상: #7eb4fb!중요
    }

    이든 호세 포레


    A cloud enthusiast, an IT Professional, and a problem-solver. I am either learning something new, running a mile, or planning my next 100 days.

    좋은 웹페이지 즐겨찾기