Ich habe ein Bild ausgeführt mit: 'docker-compose up'
Mit 'Docker ps' bekomme ich:
CREATED STATUS PORTS NAMES55e1fd18acf1 simpleappnodedocker_web "node app.js" 6 seconds ago Up 6 seconds 0.0.0.0:9000->3000/tcp myapp9879ff20e241 postgres:9.6 "docker-entrypoint..." 36 hours ago Up 36 hours 0.0.0.0:5432->5432/tcp nd-db
Ich versuche, die Bash auszuführen, um in die Shell zu gelangen, aber ich bekomme eine Fehlermeldung, wie ich das lösen kann, ich denke, ich mache etwas falsch.
$docker-compose run myapp /bin/bash ERROR: No such service: myapp
verwenden docker-compose so starten Sie den Container und führen einen Befehl im laufenden Container aus:
docker-compose updocker-compose exec web /bin/bash
docker-compose verwendet den Namen des Dienstes - in Ihrem Fall ist dies web - während docker verwendet den Containernamen - in diesem Fall myapp.
Also zu rennen /bin/bash durch docker, würden Sie Folgendes verwenden:
docker exec -ti myapp /bin/bash
sie könnten die entfernen container_name von docker-compose.yaml, dann würde der Container automatisch benannt nach docker-compose - ähnlich dem Dienst, jedoch mit vorangestelltem Namen des docker-compose stack (der Ordnername, in dem docker-compose.yaml befindet).
Die andere Antwort ist richtig, aber irgendwie war sie in ihrer umfassenden Erklärung zu "die Beziehung von Docker und docker-compose" etwas verwirrend.
Die Hauptsache, um den fraglichen Fehler zu beseitigen, ist, das zu tun, was der Fehler sagt: "FEHLER: Kein solcher Dienst:", daher müssen Sie müssen wählen Sie einen Dienst aus, der sich in Ihrer Erstellungsdatei befindet, und nicht der Containername. Im Beispiel ist es web, und NICHT myapp.
Stellen Sie außerdem sicher, dass Sie den Befehl im selben Ordner wie Ihr Docker-compose ausführen.yml, sonst erhalten Sie die gleiche Fehlermeldung, aber Phillips obige Antwort funktioniert nicht.
du machst definitiv etwas falsch. Um Ihnen zu helfen, müsste ich wissen, was Sie getan haben und wie Sie es getan haben. Bitte posten Sie Ihre Docker-Compose.yaml und ein vollständiger Rückruf aller Ihrer Schritte.
@Phillip-ZyanKLee-Stockmann Sie haben die yml-Konfiguration, müssen aber wirklich docker-compose run verwenden, wenn ich das mit docker run machen kann?