2015-07-08 11 views
23

Xin lỗi nếu điều này đã được yêu cầu, nhưng không nơi nào trong Docker documentation tôi có thể tìm thấy một danh sách có thẩm quyền của các mã thoát (còn gọi là trạng thái thoát). Thật ngạc nhiên! Tôi thấy các đề xuất về việc làm cho nó phù hợp, nhưng không có tài liệu trên docker.com.Danh sách có thẩm quyền của mã thoát Docker Run là gì?

Có ai biết nơi có thể tìm thấy mã thoát không?

+1

trong mã nguồn? – user2915097

+1

Tôi rất tiếc nếu tôi không rõ ràng. Điều gì về lỗi? Ví dụ, nếu tôi 'docker chạy -v non_existent_directory' hoặc có lẽ' docker run improper_container_path' Có rất nhiều thứ có thể bị sai, và mã exit sẽ phản ánh điều này. – jeesty

Trả lời

6

Thông thường nó sẽ là trạng thái thoát của quá trình, do đó, nó phụ thuộc vào ứng dụng ví dụ:

$ docker run debian sh -c "exit 5;" 
$ docker ps -a 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS      PORTS    NAMES 
7fcc37778df0  debian    "sh -c 'exit 5;'" 4 seconds ago  Exited (5) 3 seconds ago      reverent_einstein 

Nhưng trong một số trường hợp Docker chính nó có thể trả về một mã thoát:

  • 125 nếu Docker daemon có lỗi (ví dụ cờ sai được cung cấp)
  • 126 nếu không thể gọi lệnh vùng chứa (ví dụ: tệp không thể thực thi)
  • 127 nếu không thể tìm thấy lệnh vùng chứa (ví dụ: sai đường dẫn đến nhị phân)

https://docs.docker.com/engine/reference/run/#exit-status

+0

Tôi đã thêm nhận xét vào câu hỏi gốc. trong ngắn hạn: những gì về mã thoát khi bạn cố gắng một "docker chạy" mà không thành công? – jeesty

+0

Chúng không được ghi nhận theo kiến ​​thức tốt nhất của tôi. Tôi không nghĩ rằng nhiều ứng dụng làm tài liệu này, nhưng nó là phổ biến hơn cho phần mềm hệ thống. –

+0

Mã thoát của docker daemon được ghi lại trong https://docs.docker.com/engine/reference/run/#exit-status –

32

Đối Docker> = 1.10 thấy this PR, mà sau tiêu chuẩn chroot exit codes:

  • 125: docker run bản thân không
  • 126: nó chứa lệnh không thể được gọi
  • 127: nếu có đồng mmand không thể tìm thấy
  • 128 + n tín hiệu Fatal error n:
    • 130 = (128+2) container chấm dứt bởi Control-C
    • 137 = (128+9) container nhận một SIGKILL
    • 143 = (128+15) container nhận một SIGTERM

Kiểm tra trang người đàn ông của signal để biết danh sách đầy đủ (trên loại cmd man signal hoặc kiểm tra trực tuyến, ví dụ: signal).

Kiểm tra Docker documentation để biết thêm thông tin về phiên bản hiện tại.

+0

Và với PR đó, tài liệu cũng đã được cập nhật: https://docs.docker.com/engine/reference/run/#/exit-status – Kaos

Các vấn đề liên quan