2017-08-04 5 views
1

Ich bin ein Neuling zu Docker, und ich weiß, dass ein Weg, einen interaktiven Container ist folgendes auszuführen:Docker: Was ist der Unterschied zwischen Docker Lauf ist-es-Container und Docker laufen -IT Container bash

$ docker run -it image-name bash 

oder

$ docker run -it image-name /bin/bash 

Allerdings, wenn ich die folgende verwenden:

$ docker run -it image-name 

Es scheint, dass ich das gleiche Ergebnis. Kann mir jemand den Unterschied zwischen diesen Befehlen erklären, wenn es einen Unterschied gibt?

Antwort

3

Die ersten beiden starten den Container und führen dann das Programm bash bzw. /bin/bash (das in den meisten Fällen dasselbe ist) darin aus.

Die letzte Version startet den Container und führt dann das im Image angegebene Programm mit der CMD-Direktive aus. Einige Bilder, insbesondere diejenigen, die nur ein Basis-OS enthalten, haben auch /bin/bash oder eine andere Shell, die dort definiert ist. In diesen Fällen gibt es keinen Unterschied.

Aber wenn Sie ein Bild verwenden, das ein anderes als Befehl angegebenes Programm hat (zum Beispiel mysql), werden Sie den Unterschied bemerken.

Um die Dinge noch komplizierter zu machen, können Bilder auch einen ENTRYPOINT angeben, der wiederum das Verhalten ändert. Bitte beachten Sie die Dokumentation dafür.

Verwandte Themen