Wonach Sie fragen, ist mit Docker nicht sofort einsatzbereit. Jedes Docker-Image besitzt ein eigenes Root-Dateisystem, auf dem eine Art Betriebssystem installiert sein muss.
Ihre Optionen sind:
eine minimale Grundbild verwenden, wie the BusyBox image. Dies gibt Ihnen das absolute Minimum, das Sie benötigen, um einen Container zum Laufen zu bringen.
Verwenden Sie the CentOS base image, in diesem Fall wird in Ihrem Container das gleiche oder ein sehr ähnliches Betriebssystem ausgeführt.
Der Grund Docker Bilder wie diese ist, weil sie tragbar ist gemeint sind. Jedes Docker-Image soll unabhängig vom Betriebssystem überall ausgeführt werden, wo Docker läuft. Dies bedeutet, dass das Docker-Image ein vollständiges Root-Dateisystem und eine vollständige Betriebssysteminstallation enthalten muss.
Was Sie tun können, wenn Sie Dinge aus dem Host-Betriebssystem benötigen, ist share a directory using Docker volumes. Dies ist jedoch im Allgemeinen so zu verstehen, dass es zum Montieren von Datenverzeichnissen verwendet werden kann, und dennoch ist es erforderlich, dass das Docker-Image ein Betriebssystem aufweist.
sagte, dass, wenn Sie eine haben statisch gelinkte Binärdatei, die absolut keine Abhängigkeiten hat, wird es einfach ein sehr minimal Bild zu erzeugen. Dies wird als "Microcontainer" bezeichnet, und insbesondere Go ist gut geeignet, um diese zu erzeugen. Hier ist some further reading on microcontainers and how to produce them.
Eine andere Option, die Sie in aussehen könnte, wenn alles, was Sie wollen, ist das Ressourcenmanagement Teil von Containern ist using lxc-execute
, as described in this answer. Aber du verlierst auch alle anderen netten Docker-Funktionen. Leider versuchen Sie nicht, wofür Docker eigentlich gedacht ist.
Gibt es einen Vorteil oder Nachteil bei der Auswahl eines Basis-Image-Betriebssystems, das anders ist? Ist es nur persönliche Vorliebe? Stellt das OS des Basis-Images tatsächlich verschiedene Dienstprogramme im Docker-Container bereit? – CMCDragonkai
@CMCDragonkai, es ist eine Frage der Anwendungsanforderung ebenso. Wenn die Anwendung Ihres Containers bestimmte Bibliotheken eines bestimmten Betriebssystems benötigt, sollten Sie definitiv mit diesem Betriebssystem arbeiten. Wenn Ihre Anwendung nahtlos auf generischen Linux-Distributionen und Releases funktioniert, dann können Sie sich für ein minimales Betriebssystem entscheiden, wie in diesem Thread angegeben (zB BusyBox). Oft geht es darum zu standardisieren, welche Arten von Containern Sie bereitstellen und wie Sie sich auf die Unterstützung dieser Betriebssysteme spezialisieren möchten. – gextra