Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mendapatkan kod keluar bekas Docker yang tidak berjalan
editor php Xiaoxin akan memperkenalkan anda cara mendapatkan kod keluar bekas Docker yang tidak berjalan. Apabila menggunakan Docker, kadangkala kita perlu melihat kod keluar bekas apabila ia keluar untuk menyelesaikan masalah atau nyahpepijat. Walau bagaimanapun, apabila bekas tidak berjalan, kami tidak boleh terus menggunakan arahan `docker logs` untuk mendapatkan kod keluar. Dalam artikel ini, kami akan memperkenalkan kaedah untuk mendapatkan kod keluar bekas Docker yang tidak berjalan untuk membantu anda menangani isu berkaitan kontena dengan lebih baik.
Saya perlu mendapatkan kod keluar bekas yang berada dalam keadaan tidak berjalan. Saya tahu bekas itu tidak berjalan, saya mendapat maklumat ini daripada sumber yang berbeza.
Adakah terdapat cara dalam Docker's go SDK untuk mendapatkan kod keluar tanpa perlu menunggu bekas berada dalam keadaan tertentu?
Sebagai contoh, apa yang ContainerWait
的WaitResponse
sediakan?
Adakah hanya memanggil ContainerWait
dalam keadaan bekas saya tidak lagi wujud penyelesaian yang baik? Atau adakah penyelesaian yang lebih baik?
Saya amat berminat untuk mengelak ContainerWait
kerana saya dapat melihat panggilan itu sangat mahal.
Panggilan ke consting bagi setiap bekas mengambil masa kira-kira 10 milisaat jika keadaan bekas dihentikan dan 20 hingga 50 milisaat jika bekas berada dalam keadaan dimulakan semula.
Kod keluar terletak di containerstate
结构。这嵌入在 响应中的 <code>state
字段中(*client).containerinspect().
Contohnya:
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 }
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan kod keluar bekas Docker yang tidak berjalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!