2017-09-11 2 views
1

이 질문은 (Can Windows Containers be hosted on linux?) 알고 있지만 실제로 내 질문에 대답하지 않습니다.Docker를 사용하여 Windows에서 Linux 응용 프로그램을 실행할 수 있습니까?

저는 Docker를 처음 사용합니다. 그러나 제 질문은 그런 것입니다 - 모든 Windows 응용 프로그램을 Docker 컨테이너에 넣으면 Linux에서 실행할 수 있습니까?

Confluent은 Linux에서만 실행할 수 있지만 동료는 Docker를 사용하여 Windows에 설치했다고 주장합니다. Docker로 설치할 수 있다면 전체 애플리케이션을 반드시 크로스 플랫폼으로 간주할까요?

여기서 중요한 점을 놓치고 있다고 생각합니다.

답변

4

Docker는 VM이 ​​아니므로 해당 응용 프로그램을 서로 분리하는 공유 커널에서 응용 프로그램을 실행하는 방법입니다. Windows 바이너리는 Linux 커널에서 실행되지 않으며 그 반대의 경우도 마찬가지입니다 (Windows 용 Linux 런타임은 당분간 무시됩니다). 따라서 Windows 응용 프로그램으로 컨테이너를 빌드하면 Dockers Windows 런타임 및 Windows 기본 이미지에서만 컨테이너가 실행됩니다. Linux 호스트에서는 실행되지 않습니다.

도커가 제공하는 것은 Linux를 실행하는 임베디드 VM입니다 (원래는 VirtualBox 였지만 현재 버전은 HyperV입니다). Windows 용 Docker를 실행하면 기본적으로이 VM이 사용되었으며 Linux 컨테이너 만 실행하므로 Windows 응용 프로그램이 컨테이너 내부에서 실행되지 않습니다. Windows 바이너리를 실행하려면 Docker for Windows에서 Windows 런타임을 사용하도록 토글해야하며 현재는 토글입니다. 동일한 호스트에서 Linux 및 Windows 런타임을 동시에 실행할 수 없습니다.

Docker 's Linux 설치와 함께 패키지 된 Windows VM도 없습니다. Windows 지원이 필요한 경우 Linux 호스트의 VM 내부에 자체 Windows 사본을 설치하고 (Docker가이 패키지를 제공하지 않는 라이센스를 얻어야합니다.) 해당 VM 내부에 컨테이너를 실행해야합니다.

+0

Docker는 기본적으로 Linux VM을 실행하며 Docker에서 Windows VM을 실행하도록 전환 한 다음 Windows 컨테이너를 실행할 수 없다면 Docker에서 실행하는 모든 것이 Linux 컨테이너 여야합니다. Linux에서 실행되는 Windows VM Docker가 있습니까? – eddyP23

+0

@ eddyP23 올바른 docker를 따르고 있습니다. Linux 용 Windows VM 환경을 제공하지 않습니다. – BMitch

관련 문제