Update3 : 06.2019
의견 중 일부는 대답이 명확하지 않다고 말하면서 명확히하려고 노력할 것입니다.
TL; DR :
Q : Linux에서 Windows 컨테이너를 실행할 수 있습니까?
A : 아니요. 그들은 할 수 없습니다.
컨테이너는 기본 운영 체제 리소스 및 드라이버를 사용하므로 Windows 컨테이너는 Windows에서만 실행할 수 있고 Linux 컨테이너는 Linux에서만 실행할 수 있습니다.
Q : 그러나 Windows 용 Docker는 어떻습니까? 아니면 다른 VM 기반 솔루션?
A : Windows 용 고정 표시기 실행 시뮬레이션 할 수 있습니다 리눅스 에 컨테이너를 윈도우 하지만, 후드 리눅스 VM은 그래서 여전히 만든 리눅스 컨테이너 리눅스에서 실행 및 Windows 용기는 윈도우에서 실행되는 .
보너스 : Windows에서 Linux 도커 컨테이너를 실행하는 방법에 대한 이 훌륭한 기사를 읽으십시오 .
Q : 컨테이너에서 실행하려면 .Net Framework 462 앱으로 어떻게해야합니까?
A : 다릅니다. 몇 가지 권장 사항을 따르면 :
- 가능하면 .Net Core로 이동하십시오. .Net Core는 .Net Framework의 대부분의 주요 기능을 지원하므로 .Net Framework 4.8 은 .Net Framework 의 마지막 버전이됩니다.
.Net Core로 마이그레이션 할 수없는 경우-@Sebastian이 언급했듯이 라이브러리를 .Net Standard로 변환 할 수 있으며 .Net Framework 4.6.2 및 .Net Core의 두 가지 버전의 앱을 가질 수 있습니다. Visual Studio는 항상 다중 타겟팅을 통해이를 잘 지원하지만 일부 종속성은 추가 관리가 필요할 수 있습니다.
(권장되지 않음) 경우에 따라 Windows 컨테이너를 실행할 수 있습니다. Kubernetes와 같은 플랫폼에서 더 나은 지원을 통해 Windows 컨테이너가 더욱 성숙 해지고 있습니다. 그러나 .Net Framework 코드를 실행하려면 약 1.4GB를 차지하는 "Server Core"의 기본 이미지를 계속 실행해야합니다. 드문 경우이지만 코드를 .Net Core로 마이그레이션 할 수 있지만 이미지 크기가 95MB 인 Windows Nano 서버에서 계속 실행될 수 있습니다.
역사에 대한 오래된 업데이트도 남겨 둡니다.
업데이트 2 : 08.2018
Docker-for-Windows를 사용하는 경우 이제 Windows와 Linux 컨테이너를 동시에 실행할 수 있습니다: https://blogs.msdn.microsoft.com/premier_developer/2018/04/20/running-docker-windows- 그리고 리눅스 컨테이너와 동시에 /
보너스 : 질문과 직접 관련이 없지만 이제 Linux 컨테이너 자체뿐만 아니라 kubernetes와 같은 오케 스트레이터를 실행할 수도 있습니다 : https://blog.docker.com/2018/07/kubernetes-is-now-available-in -도커-데스크탑 안정 채널 /
2018 년 업데이트 :
일반적으로 원래 대답은 맞다, 하지만 몇 개월 전, 고정 표시기 추가 실험 기능 LCOW ( 공식 GitHub의 저장소 ).
에서 이 게시물 :
Windows 용 Docker는 이미 Linux 컨테이너를 실행하지 않습니까? 맞습니다. Windows 용 Docker는 Hyper-V Moby Linux VM을 통해 Linux 컨테이너를 지원하여 Linux 또는 Windows 컨테이너를 실행할 수 있습니다 (Windows 17.10의 Docker에서이 VM은 LinuxKit을 기반으로 함).
LCOW를 사용하여 Linux 컨테이너를 실행하기위한 설정 은 Hyper-V Linux VM이 모든 컨테이너와 함께 Linux Docker 데몬을 실행하는 이전 아키텍처보다 훨씬 간단 합니다. LCOW를 사용하면 Docker 데몬은 Windows 프로세스로 실행되며 (Docker Windows 컨테이너를 실행할 때와 동일) Linux 컨테이너를 시작할 때마다 Docker는 Linux 커널, runc 및 컨테이너 프로세스로 VM을 실행하는 최소 Hyper-V 하이퍼 바이저를 시작합니다. 위에 달리기.
Docker 데몬이 하나 뿐이고 이제 해당 데몬이 Windows에서 실행되기 때문에 동일한 네트워킹 네임 스페이스에서 Windows 및 Linux Docker 컨테이너를 나란히 실행할 수 있습니다 . 이를 통해 Windows의 Docker 사용자를위한 흥미로운 개발 및 프로덕션 시나리오가 많이 열립니다.
실물:
@PanagiotisKanavos의 의견에서 언급했듯이 컨테이너는 가상화 용이 아니며 호스트 시스템의 리소스를 사용하고 있습니다 . 결과적으로, 현재 Windows 컨테이너는 Linux 시스템에서 "있는 그대로"실행할 수 없습니다.
그러나 Windows에서 작동하는 VM을 사용하여 수행 할 수 있습니다. Linux 호스트에 Windows VM을 설치하면 Windows 컨테이너를 실행할 수 있습니다.
이를 통해 IMHO는 PROD 환경에서 이러한 방식으로 실행하는 것이 가장 좋은 아이디어는 아닙니다.
또한 이 답변 은 자세한 내용을 제공합니다.