.NET 6.0 SDK Linux Docker 컨테이너를 만드는 방법

4538 단어 csharpdocker
이 게시물에서는 Ubuntu 20.04를 실행하는 .NET 6.0 SDK Docker 컨테이너를 만들기 위해 수행한 단계를 설명합니다. 내 호스트 시스템도 Ubuntu 20.04를 실행하고 있다는 점에 유의해야 합니다. 방법에 대한 자세한 설명은 다음과 같습니다setup Docker .NET images on GitHub.

Ubuntu 20.04에 Docker 설치



나는 Docker documentationhow to install Docker on Ubuntu을 매우 좋아하므로 여기에서 단계를 반복하지 않을 것입니다.

.NET 6.0 Dockerhub 이미지 태그에 유의하십시오.



Dockerhub은 사전 빌드된 도커 이미지의 가장 크고 잘 알려진 리포지토리입니다. Microsoft에서 빌드한 .NET 6.0runtimeSDK 이미지를 호스팅합니다.

Ubuntu 20.04에 .NET 6.0 SDK를 설치한다고 가정해 보겠습니다.

먼저 경로를 알아야 합니다. 페이지의 "추천 태그"섹션을 보면 다음과 같은 내용이 표시됩니다.

피처링 태그에 대한 자세한 내용은 samples page...

The sdk:6.0 and runtime:6.0 tags are both multi-arch tags that will result in an image that is compatible for the given chip and OS. These simple tags (only contain a version number) are great to get started with Docker because they adapt to your environment.
They do mention that for production systems, you should specify an OS-specific tag. So we need to extract the image path from the tag. In this case, the path is "mcr.microsoft.com/dotnet/sdk".



이제 .NET SDK dockerhub page의 "전체 태그 목록"으로 이동하면 다음과 같은 내용이 표시됩니다.


최신 Ubuntu 20.04 이미지를 원한다고 가정하면 태그는 "6.0-focal"이고 전체 경로는 "mcr.microsoft.com/dotnet/sdk:6.0-focal"이 됩니다. 그러나 모든 Linux 이미지 태그를 사용할 수 있습니다. 예를 들어 Alpine 이미지를 빌드하려면 "mcr.microsoft.com/dotnet/sdk:6.0-alpine"을 사용합니다.

Dockerfile 만들기



이제 이미지의 기반이 될 이미지의 경로와 태그를 알았으므로 빈 디렉터리에 "Dockerfile"이라는 파일을 만들 수 있습니다.

FROM mcr.microsoft.com/dotnet/sdk:6.0-focal AS build


도커 이미지 빌드



이미지를 생성하려면 "Dockerfile"과 동일한 디렉토리에서 다음 명령을 실행합니다.

sudo docker build -t example-image .


"-t"옵션은 태그 이름을 지정하고 ".""Dockerfile"을 찾을 디렉터리를 알려줍니다.

이미지가 성공적으로 생성되었는지 확인하려면 다음을 실행합니다.

sudo docker image ls


컨테이너에서 명령 생성 및 실행



방금 빌드한 이미지를 기반으로 새 컨테이너에서 명령을 생성하고 실행하려면 다음 명령을 실행합니다.

$ sudo docker run --name example-server -it --rm example-image bash


"-it"는 bash 명령을 대화식으로 실행하고 현재 쉘에서 bash 쉘을 효과적으로 실행할 수 있도록 pseudo TTY을 할당합니다. "--rm"은 생성된 컨테이너를 자동으로 제거합니다. "--rm"옵션을 사용하지 않으면 명령을 실행할 때마다 새 컨테이너가 생성됩니다. 컨테이너에서 실행 중인 bash 터미널에서 지원되는 SDK를 나열하고 종료합니다.

root@2dc636974d10:/# dotnet --list-sdks
6.0.100 [/usr/share/dotnet/sdk]
root@2dc636974d10:/# exit


"exit"명령은 컨테이너에서 실행 중인 bash 셸을 종료하고 실행 명령에서 지정한 "--rm"옵션으로 인해 컨테이너가 삭제됩니다.

좋은 웹페이지 즐겨찾기