Ich möchte mysql Server auf einem centos:6.6 Container installieren.Muss ich beim Ausführen eines Andock-Containers einen Befehl angeben?
Wenn ich jedoch docker run --name myDB -e MYSQL_ROOT_PASSWORD=my-secret-pw -d centos:6.6
ausführen, habe ich docker: Error response from daemon: No command specified.
Fehler.
Überprüfen des Dokuments von docker run --help
, fand ich, dass die COMMAND
scheint ein optionales Argument bei der Ausführung docker run
. Dies liegt daran, dass [COMMAND]
in einem Paar eckiger Klammern platziert ist.
$ Docker --help
laufenVerbrauch: Docker run [Optionen] BILD [Befehl] [ARG ...]
Führen Sie einen Befehl in einem neuen Behälter
Ich finde auch heraus, dass die official repository of mysql keinen Befehl beim Starten eines MySQL-Container angibt:
S eine MySQL-Instanz tarting ist einfach:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
Warum sollte ich einen Befehl liefern, wenn ein CentOS läuft: 6.6 Behälter, aber nicht so, wenn eine MySQL-Container ausgeführt wird?
Ich vermute, dass Centos: 6.6 speziell konfiguriert ist, so dass der Benutzer einen Befehl bereitstellen muss, wenn es ausgeführt wird.
Warum sehe ich 'CMD ["/bin/bash "]' in der [docker-Datei von Centos] (https://github.com/CentOS/sig-cloud-instance-images/blob/298ec183aa5886d8184256a1fc94b7618411f426/docker/Dockerfile)? – Brian
Dies ist der Standardbefehl, wenn Sie Ihren Container mit Centos-Image starten. Sie können weiterhin einen Befehl zum Überschreiben in Ihrem "Docker Run" angeben. –
versuche "docker run centos: 6/6/bin/echo ABC", hier überschreibst du "/ bin/bash" durch "/ bin/echo ABC" –