php-Editor Xiaoxin stellt Ihnen vor, wie Sie den Exit-Code eines nicht laufenden Docker-Containers erhalten. Bei der Verwendung von Docker müssen wir manchmal den Exit-Code des Containers anzeigen, wenn er zur Fehlerbehebung oder zum Debuggen beendet wird. Wenn der Container jedoch nicht läuft, können wir den Befehl „docker logs“ nicht direkt verwenden, um den Exit-Code abzurufen. In diesem Artikel stellen wir eine Methode vor, mit der Sie den Exit-Code eines nicht ausgeführten Docker-Containers abrufen können, damit Sie Probleme im Zusammenhang mit Containern besser lösen können.
Ich benötige den Exit-Code eines Containers, der sich in einem nicht ausgeführten Zustand befindet. Ich weiß, dass der Container nicht läuft, ich beziehe diese Informationen aus verschiedenen Quellen.
Gibt es im Go SDK von Docker eine Möglichkeit, den Exit-Code abzurufen, ohne darauf warten zu müssen, dass sich der Container in einem bestimmten Zustand befindet?
Was bietet beispielsweise ContainerWait
的WaitResponse
?
Ist ein einfacher Anruf ContainerWait
in einem Zustand, in dem mein Container nicht mehr existiert, eine gute Lösung? Oder gibt es eine bessere Lösung?
Ich bin besonders daran interessiert, ContainerWait
zu vermeiden, weil ich mir vorstellen kann, dass dieser Anruf sehr teuer ist.
Jeder Containeraufruf an consting dauert etwa 10 Millisekunden, wenn der Containerstatus gestoppt ist, und 20 bis 50 Millisekunden, wenn der Container neu gestartet wird.
Der Exit-Code befindet sich unter containerstate
结构。这嵌入在 响应中的 <code>state
字段中(*client).containerinspect().
Zum Beispiel:
func checkExitStatus(ctx context.Context, client *client.Client, containerID string) error { inspection, err := client.ContainerInspect(ctx, containerID) if err != nil { return err } // Possible values are listed in the `ContainerState` docs; there do not // seem to be named constants for these values. if inspection.State.Status != "exited" { return errors.New("container is not exited") } if inspection.State.ExitCode != 0 { return fmt.Errorf("container exited with status %d", inspection.State.ExitCode) } return nil }
Das obige ist der detaillierte Inhalt vonSo erhalten Sie den Exit-Code eines nicht ausgeführten Docker-Containers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!