본문 바로가기

카테고리 없음

Hyper-V 가상 컴퓨터가 있거나없는 Windows의 도커 및 Linux 컨테이너

출처  : https://www.hanselman.com/blog/DockerAndLinuxContainersOnWindowsWithOrWithoutHyperVVirtualMachines.aspx

당신이 듣지 못했을 때를 대비하여 컨테이너는 사랑 스럽습니다. 호스트 시스템과 상관없이 안정적이고 보장 된 배치를 얻을 수있는 훌륭하고 깨끗한 방법입니다.

내 ASP.NET 코어 응용 프로그램을 실행하려면 명령 줄에 "docker run -p 5000 : 80 shanselman / demos"를 입력하면 시작할 수 있습니다! 나는 그것이 달리지 않을 것이라는 어떤 걱정도하지 않는다. 실행되고 잘 돌아갑니다.

naysayers는 가상 머신을 사용하여 동일한 작업을 수행 할 수 있지만 오늘날에도 VHD (가상 하드 드라이브)는 다소 힘든 일이며 컨테이너에없는 오버 헤드를 포함합니다. 컨테이너가 발생하고 배포를 위해 열심히 노력해야합니다.

도커 실행 shanselman / 데모

그러나 역사적으로 Windows에서 Linux 컨테이너는 Hyper-V 가상 시스템 내에서 실행됩니다. 목표가 무엇인지에 따라 이것은 좋은 것이거나 나쁜 것일 수 있습니다. VM 내에서 컨테이너를 실행하면 약간의 오버 헤드로 상당한 격리가 가능합니다. 이것은 서버에는 좋지만 노트북에는 적습니다. Windows 용 Docker 는 대부분 VM을 숨기지 만 거기에 있습니다. 컨테이너는 Windows에서 Hyper-V 내에서 실행되는 Linux VM 내에서 실행됩니다.

Windows의 HyperV

최신 버전의 Windows 10 (또는 10 Server) 및 Docker for Windows의 베타 버전에는 Windows에 기본 Linux Container가 지원됩니다. 즉, 가상 머신이나 Hyper-V가 필요 없다는 것을 의미합니다 (원하는 경우 제외). 따라서 Linux 컨테이너는 Windows 10의 컨테이너 지원 기능을 사용하여 Windows 자체에서 실행됩니다.

지금은 Hyper V와 네이티브 컨테이너간에 "모드"를 전환해야하며 Linux 및 Windows 컨테이너를 나란히 실행할 수는 없습니다. 길거리에서의 말은 시간상의 문제 일 뿐이라는 점과 Docker가 Linux 및 Windows Containers를 동시에 실행하는 것을 지원한다는 점입니다. 모든 종류의 시원한 하이브리드 시나리오가 열리기 때문에 꽤 멋지다. Redis 또는 Postgres를 실행하는 Linux 컨테이너와 통신하는 .NET Framework ASP.NET 응용 프로그램과 함께 Windows Server 컨테이너를 실행할 수 있습니다. 그런 다음 Azure의 Kubernetes에 모두 올려 놓을 수 있습니다.

Docker 내에서 Windows 용 Linux 컨테이너를 설정하면 모든 것이 제대로 작동하고 덜 움직이는 부분이 있습니다.

Docker의 Linux 컨테이너

busybox 또는 실제 Ubuntu를 쉽고 빠르게 실행할 수 있습니다 ( Windows 10은 기본적으로 WSL로 Ubuntu를 지원합니다 ).

도커 실행 -ti busybox sh

Azure Command Line을 설치하지 않고 실행하는 것이 더 유용합니다! 그냥 "docker -it microsoft / azure-cli"를 실행하면 Linux 컨테이너에서 실행됩니다.

컨테이너의 Azure CLI

나는 심지어 니 찬트를 돌릴 수있다! (고마워 토마스 !)

도커 실행 - supertest2014 / nyan

냥 고양이!

추측하기 - "minikube start --vm-driver ="windows "(또는 뭔가)를 실행할 수있는 날을 고대하고 Hyper-V 가상 시스템을 사용하는 대신 Windows 기본 Linux 컨테이너 지원을 사용하여 Kubernetes 개발 시스템을 로컬로 쉽게 설정할 수 있습니다. , 내가 선택하면.