2017-05-11 21 views

Antwort

0

Das ist richtig, docker teilt Ressourcen mit dem Host-Betriebssystem. Wenn Sie ein Ubuntu-basiertes Image auf dem Mac ausführen möchten, müssen Sie eine virtuelle Maschine mit einem Linux ausführen, der wiederum den Container ausführt. Übrigens. auf Mac Docker verwendet Docker-Maschine, um Container zu starten, was im Grunde alles für Sie tut.

Also alles in allem Docker ist nicht »Cross-Plattform«, wenn Sie Windows Docker Container ausführen möchten, werden Sie auch ein Windows-Host.

Details: Wie beschrieben here erfordert Docker einen Linux-Kernel mit einer Mindestversion von 3.10. Mit diesem kann cgroups (ein Kernel-Feature) verwendet werden, um die Ressourcen zu verwalten.

Also muss der Kernel des Hosts diese Funktion haben. Wenn nicht, kann eine virtuelle Maschine (virtuelle Box, Docker-Maschine) verwendet werden, um dies auf nahezu jedem Betriebssystem zu ermöglichen, das in der Lage ist, eine VM auszuführen. Beachten Sie jedoch, dass einige Funktionen wie Portweiterleitung (docker run -p 8000:80 …) nicht mit einer VM funktionieren, wenn Sie http://localhost:8000 eingeben, da Sie dies in http://<ip of vm>:8000 ändern müssen.

+1

Das ist veraltet. [Docker for Mac] (https://docs.docker.com/docker-for-mac/), das letzten Sommer veröffentlicht wurde, benutzt Docker Machine nicht. Es verwendet native Hypervisor-Funktionen, die in OSX integriert sind. Und Sie müssen nicht mehr die IP-Adresse des Computers abrufen. Sie können localhost für Container verwenden, die unter OSX ausgeführt werden. Sie können Linux-Basiscontainer unter Mac OS ausführen, wofür die Hypervisor-Unterstützung verwendet wird. Sie können Windows-Basisabbilder jedoch nicht auf Mac oder Linux ausführen. –

0

Docker teilt Ressourcen mit dem Host-Betriebssystem. Allerdings ist der Host immer ein Linux-System, im Falle von Mac OS gibt es ein virtualisiertes Linux-Docker-Laufwerk. Http://stackoverflow.com/questions/30632386/is-docker-a-solution-for-making-application-cross-platform

Verwandte Themen