2017-01-13 17 views
14

Tôi đang chơi Docker Swarm và sử dụng docker-compose.yml với docker deploy. Tất cả các dịch vụ được triển khai ngoại trừ một dịch vụ nằm trong trạng thái Đang chờ xử lý. Tôi đã thêm một ràng buộc ràng buộc dịch vụ này với một trong các nút. Câu hỏi của tôi không phải là quá nhiều về vấn đề cụ thể này, nhưng nhiều hơn về cách khắc phục sự cố. Tài liệu Docker đề cập đến các nguyên nhân có thể cho một dịch vụ ở trạng thái chờ, nhưng không có nguyên nhân nào trong số đó được áp dụng (vấn đề hạn chế, thoát nước tài nguyên).Làm cách nào để tìm hiểu lý do dịch vụ Docker của tôi ở trạng thái Đang chờ xử lý?

Tôi có thể thấy quy trình suy nghĩ của cụm docker ở đâu đó không? Nó đang nghĩ gì vậy?

Chỉnh sửa: nên làm rõ hơn là tôi đang sử dụng tùy chọn mới, được giới thiệu 1.12.

Trả lời

22

tôi sẽ giải thích làm thế nào để gỡ lỗi khi dịch vụ không bắt đầu như mong đợi ở chế độ Docker bầy đàn.

Trước hết, hãy nhận ID nhiệm vụ với docker service ps <service-name>.

Tiếp theo, bạn nên kiểm tra dữ liệu meta bằng docker inspect <task-id>. Đặc biệt, thông báo lỗi trước khi bắt đầu vùng chứa nằm trong trường trạng thái, và sau đó xác nhận lại liệu nó đã được bắt đầu với các tham số dự định hay chưa.

Nếu nhiệm vụ có ID container, nó được một cách bất thường đã thoát sau khi bắt đầu container, nên kiểm tra các bản ghi của container với docker logs <container-id>

Tôi hy vọng điều này sẽ có một số sự giúp đỡ.

+2

Cảm ơn! Trong khi chờ đợi trong trường hợp của tôi có nghĩa là docker swarm không thể tìm thấy một nút phù hợp (đã đáp ứng ràng buộc của tôi) –

1

docker run swarm có tùy chọn --debug có thể cho bạn biết thêm.

Xem docker swarm issue 2341 hoặc docker issue 24982 để xem tùy chọn đó được sử dụng để gỡ lỗi trạng thái đang chờ xử lý.

Ví dụ:

(unknown): 192.168.99.106:2375(node2 ip) 
└ ID: 
└ Status: Pending 
└ Containers: 0 
└ Reserved CPUs: 0/0 
└ Reserved Memory: 0 B/0 B 
└ Labels: 
└ Error: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.... 
+3

Tôi đang sử dụng 'docker swarm init', vì vậy tôi chạy trình quản lý swarm nội bộ bằng cách sử dụng' swarmkit'. Trợ giúp dòng lệnh không hiển thị tùy chọn '--debug'. Tôi đoán rằng việc chạy docker daemon với '--debug' sẽ thực hiện thủ thuật. Tôi sẽ thử điều đó. – raarts

+0

Cũng muốn thêm rằng thay vì đưa dịch vụ vào tệp 'docker-compose.yml', hãy chạy nó bằng tay có thể khai sáng. – raarts

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