파일을 어떻게 압축합니까?네트워크 핵심 응용

주제 또는 개선에 대한 당신의 조언/Chris를 기꺼이 듣고 싶습니다.
Docker와 컨테이너 운송에 관한 일련의 기사의 첫 번째 부분입니다.순핵심.
본문에서 우리는

  • 일반 토론 컨테이너 운송

  • 우리가 취해야 할 절차, 예를 들어 공작물을 만드는 것, 예를 들어 Dockerfile, .dockerignore과 기본적인 Docker 명령을 배운다.
  • 리소스


  • Sign up for a free Azure account
    클라우드 용기, 예를 들어 개인 등록표를 사용하려면 무료Azure 계정
  • 이 필요합니다.

  • , 본 시리즈는 기본 개념, 볼륨, 네트워크, Docker compose 등 내용
  • 을 포함하는 Docker의 튼튼한 기초를 제공하기 위한 것입니다.

  • 이것은 가이드입니다. Docker 그림이 가능한 한 작지만, 성능도 확보하고, 명령을 사용해야 하는 이유를 알 수 있습니다.

  • VS 코드는 이 확장, 구축, 실행, 작성, 배치, 그리고 대량의 우수한 명령
  • 을 통해 Docker 작업 흐름을 처리하는 데 진정으로 도움을 줄 수 있습니다.
  • Building Microservices with .Net Core
    이 강좌는 에서 어떻게 마이크로 서비스를 구축하는지 소개한다.Net을 아카이빙합니다.
  • Getting started with ASP .Net Core
    이것은 ASP로 웹 응용 프로그램을 개발하는 것을 가르쳐 줄 것이다.Net 커널이 사용됩니다.Net Core CLI
  • Containerize a .Net Core App
    이것은 콘솔 응용 프로그램
  • 을 Dockerize로 만드는 방법을 보여줍니다.
  • .Net Core and Docker
    Docker가 직접 설명하는 방법입니다.네트워크 응용.
  • 왜?


    제목에서 우리가 할 일을 dockerizing이라고 합니다.Docker의 이름은 dockerizing입니다.또 다른 이름은 컨테이너화이고, Docker는 컨테이너의 흔한 공급업체로, 이 두 개념은 거의 동의어가 되었다.
    다른 공급업체도 있을 거야.관심 있는 경우 여기에서 더 많은 내용을 읽을 수 있습니다.

    https://techbeacon.com/enterprise-it/30-essential-container-technology-tools-resources-0


    Docker는 응용 프로그램을 컨테이너에 배치하는 데 도움을 줍니다.그럼 저희가 왜 이렇게 해야 돼요?이렇게 하려는 데는 여러 가지 이유가 있다.우선 용기가 무엇인지 이야기해 봅시다.Docker가 정의하는 방법을 살펴보겠습니다.

    A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.


    좋습니다. 그래서 우리는 한 컴퓨터 환경에서 다른 컴퓨터 환경으로 속도와 신뢰성을 얻었기 때문에 제 기계보다 더 큰 범위에서 일할 수 있습니까?

    Yes exactly that



    또 뭐 있어요?

    A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries, and settings


    알겠습니다. 응용 프로그램 코드뿐만 아니라 실행 시, 시스템 도구 등 모든 것을 휴대하고 있습니다. 이것은 가상 이미지가 아닙니까?

    Well no, it's a lightweight version. Containers use the underlying Host OS they run in to make syscalls.


    어?알 것 같아.나는 Docker로 용기를 만들었다. 이것은 내가 모든 사람의 환경에서 똑같이 보이는 작고 가벼운 것을 얻었다는 것을 의미한다.내 프로그램을 발표하고 싶거나?

    Yes you got it and yes definitely when you want to ship your app but also during development if you want. Today the Cloud is super popular and becomes the default standard for hosting your app. Having your app in a container format means it's easy for us to scale it using, for example, Kubernetes when we want to manage a ton of containers or support a microservice architecture. Storing your containers in the Cloud, in a container registry, is also made possible at most of the large Cloud Vendors.


    방법 - 프레젠테이션


    좋습니다. 왜 우리는 우리의 응용 프로그램을 컨테이너 버전으로 바꾸어야 하는지, 이제 우리가 취해야 할 실제 절차를 봅시다.

  • 비계Network Application,

  • Dockerfile
  • 만들기

  • Docker 만들기 파일 무시

  • 이미지 메이킹

  • 저희 컨테이너
  • 을 운행합니다.

    웹 응용 프로그램 구성


    우선 하나가 필요합니다.Net 네트워크 애플리케이션Dotnet CLI를 사용하여 다음과 같이 생성할 수 있습니다.
    dotnet new webapp -o aspnetcoreapp
    
    이것은 aspnetcoreapp이라는 네트워크 응용 프로그램을 만들 것이다.
    현재 Google 웹 응용 프로그램이 생겼습니다. Docker 부분에 주목해 봅시다. Google은 현재 이 웹 응용 프로그램이 부족합니다. 이 웹 응용 프로그램을 추가해야 합니다.

    Dockerfile 만들기


    알겠습니다. 이 부분에서 Dockerfile이라는 파일을 만들 것입니다.이것은 우리가 어떤 운영체제를 필요로 하는지, 어떤 명령을 설치하고 싶은지, 응용 프로그램 코드를 어디서 찾을 것인지, 그리고 마지막으로 용기에서 응용 프로그램을 시작하는 방법을 지정하는 것이다.Dockerfile을 보십시오. 마치 무엇과 어떻게 요리하는지에 관한 레시피와 같습니다.그래.이 제품을 만들려면 다음과 같이 하십시오.
    touch Dockerfile
    
    이미지 지정
    내용에 대해 우리가 정의해야 할 첫 번째 일은 우리가 기반으로 하고 싶은 이미지이다.우리는 파일이 용기에서 끝날 수 있도록 작업 디렉터리를 설정해야 한다.
    다음과 같이 WORKDIR 및 WORKDIR 명령을 사용하여 이 작업을 수행했습니다.
    # Dockerfile
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
    
    WORKDIR /app
    
    우리가 여기서 말하는 것은 작은 운영체제 이미지가 있는 이미지를 캡처하는 것이다.순핵심.우리는 또 우리의 업무 목록은 /app이라고 말했다.
    프로젝트 파일 복사
    이제 .csproj으로 끝나는 프로젝트 파일을 복사해야 합니다.또한 다음과 같이 지정된 의존 항목을 모두 설치할 수 있도록 dotnet restore을 호출해야 합니다.
    COPY *.csproj ./
    RUN dotnet restore
    
    복제 및 구축
    그런 다음 다음과 같이 애플리케이션 파일을 복제하고 애플리케이션을 구축해야 합니다.
    COPY . ./
    RUN dotnet publish -c Release -o out
    
    런타임 이미지 구축
    여기서 다음과 같이 이미지 및 작업 디렉토리를 다시 지정합니다.
    FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
    WORKDIR /app
    
    그러나 이번에는 생성된 파일을 app/out으로 복제하기를 희망합니다.
    COPY --from=build-env /app/out .
    
    응용 프로그램 시작
    마지막으로, 우리는 프로그램을 어떻게 시작하는지 설명하는 명령을 추가했다.우리는 명령 입구점을 통해 실현한다.ENTRYPOINT는 매개변수가 있는 명령행 호출로 변환되는 배열을 받아들입니다.우리의 명령은 다음과 같다.
    ENTRYPOINT ["dotnet", "aspnetcoreapp.dll"]
    
    이것은 명령줄에 dotnet aspnetcoreapp.dll을 호출한다는 것을 의미한다.Dockerfile의 전체적인 모양은 다음과 같습니다.
    FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
    WORKDIR /app
    
    # Copy csproj and restore as distinct layers
    COPY *.csproj ./
    RUN dotnet restore
    
    # Copy everything else and build
    COPY . ./
    RUN dotnet publish -c Release -o out
    
    # Build runtime image
    FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
    WORKDIR /app
    COPY --from=build-env /app/out .
    ENTRYPOINT ["dotnet", "aspnetcoreapp.dll"]
    

    를 생성합니다.dockerignore 파일

    Dockerfile에서 명령을 구축하기 전에, 우리는 원하지 않는 파일/디렉터리 문제를 해결해야 한다.이를 위해 Docker는 .dockerignore이라는 파일을 만들라고 알려줍니다.그럼 저희가 원하는 게 뭘까요?우리는 이를 실현하기 위해 bin 또는 obj 같은 디렉터리가 없다는 것을 확보해야 한다.
    먼저 .dockerignore 파일을 생성합니다.
    touch .dockerignore
    
    .dockerignore 파일에 다음을 입력합니다.
    # .dockerignore
    
    Dockerfile
    [b|B]in
    [O|o]bj
    
    주:#은 평론에 쓰인다.

    우리의 이미지 구축 & 시동 용기


    이 점에서 우리는 우리가 하고 싶은 레시피, 즉 우리의 Dockerfile이 하나밖에 없다.여기서부터 우리는 두 단계로 나누어 진행해야 한다.
  • Dockerfile
  • 에서 이미지 만들기
  • 은 우리의 그림에서 용기를 만들고 실행합니다.
  • 우리의 이미지를 형상화하다
    이미지를 만들려면 다음과 같이 명령 docker build을 사용할 수 있습니다.
    docker build -t aspnetcoreapp .
    
    만약 우리가 조금만 분해한다면, 우리는 -t을 사용하여 우리의 그림을 명명하는 것을 발견할 수 있을 것이다.aspnetcoreapp이 이미지 이름이 됩니다.우리의 마지막 매개 변수는 문장점 .입니다. 이것은 우리가 어디에서 Dockerfile을 찾을 수 있는지를 나타냅니다. 우리의 예에서 이것은 현재 디렉터리입니다.
    이 명령을 실행하면 첫 번째 오류가 발생합니다.Net Core 이미지가 제거되면 FROM 명령에 유의하십시오.

    그런 다음 Dockerfile에서 나머지 명령을 모두 처리합니다.

    위에서 볼 수 있듯이 그것은 successfully tagged aspnetcoreapp:latest이다.이것은 모든 것이 매우 좋다는 것을 의미한다. 우리는 이미지가 있다.그럼 어떻게 검사할까요?
    다음과 같이 명령 docker images을 입력할 수 있습니다.

    우리의 용기를 만들고 실행합니다
    이 점에서 우리는 그림이 하나 있다.잘 됐다.그것은 우리의 응용 프로그램 코드, 명령 실용 프로그램, 운영체제, 그리고 우리가 그것에 포함된 모든 기타 내용을 포함한다.우리는 시작해야 한다.이를 위해서는 용기로 만들어야 한다.다음과 같이 명령 docker run을 사용합니다.
    docker run -d -p 8080:80 --name myapp aspnetcoreapp
    
    명령을 분해합니다.
  • -d, 이것은 단지 우리가 백그라운드에서 용기를 운행한다는 것을 의미할 뿐이다.
  • -p은 외부 포트와 내부 컨테이너 포트를 일치시킬 것을 의미한다.일부 Dockerfile 사양에서는 내부 포트를 명시적으로 공개해야 합니다. 예를 들어 80에서 실행되기 때문에 이 사양은 필요하지 않습니다.문법 external port: internal port을 명확히 하자.이것은 우리가 기계 포트 8080을 내부 컨테이너 포트 80에 연결한다는 것을 의미한다.
  • --name, 이것은 우리가 제공한 컨테이너 이름, myapp입니다.만약 우리가 이름을 지정하지 않는다면, 우리를 위해 이름을 생성할 것이다.이름이 생기면 인용하기 쉽다.
  • 마지막 매개 변수는 이미지 이름 aspnetcoreapp입니다.
    컨테이너가 생성되었는지 확인하고 명령 docker ps을 사용하여 실행 중입니다.

    마지막으로 http://localhost:8080으로 이동하여 컨테이너가 시작되고 실행되는지 확인합니다.

    깨끗이 정리하다


    현재 실행 중인 이미지와 용기를 만들었습니다.시간의 추이에 따라, 너는 대량의 그림과 용기를 가지고 있을 것이다.공간이 필요하기 때문에 Docker 명령을 배워서 제어할 수 있습니다.
    용기 종류 docker stop [docker name]을 정지합니다.따라서 우리의 경우 다음과 같습니다.
    docker stop myapp
    
    컨테이너를 제거하려면 다음과 같이 하십시오.
    docker rm myapp
    
    용기 이름이나 id (최소 3글자) 를 사용하여 그것을 정지하거나 삭제할 수 있습니다.예를 들어 docker ps을 입력하면 그 이름을 찾을 수 있습니다.
    이제 두 장의 사진이 남았습니다. 우리가 만든 aspnetcoreappmcr.microsoft.com/dotnet/core/runtime:2.2을 기반으로 한 사진입니다.깨끗이 정리하려면 명령 docker rmi, 일명 Remove image를 사용할 수 있습니다. 다음과 같습니다.
    docker rmi myimage:latest
    docker rmi mcr.microsoft.com/dotnet/core/runtime:2.2
    

    요약


    우리는 Docker의 도움으로 첫걸음을 내디뎠다.순핵심.이 과정에서 컨테이너와 Docker를 사용하는 이유에 대해 논의했습니다.
    이미지에 들어갈 내용을 지정하기 위해 Dockerfile 파일을 지정하는 내용도 배웠습니다.또한 .dockerignore 파일을 작성하여 이미지에 포함되지 말아야 할 내용을 지정하여 작고 빠르게 구축할 수 있도록 했습니다.
    이 밖에 우리는 컨테이너를 건조하고 가동했다.
    다음 부분에서 우리는 마이크로 서비스를 구축하고 이를 클라우드에 배치하는 것을 연구할 것이다.

    감사를 드리다


    자바 챔피언 DevOps 전문가를 주목해야 합니다.

    좋은 웹페이지 즐겨찾기