Giải Quyết Vấn Đề Docker: Hướng Dẫn Khắc Phục & Khắc Phục Sự Cố 🛠️
Chào mừng bạn trở lại! Sau khi nắm vững việc triển khai, mạng lưới và quản lý Docker, điều quan trọng là bạn cần biết cách xác định, khắc phục và sửa chữa các vấn đề. Container tuy được cách ly, nhưng vấn đề có thể phát sinh ở bất kỳ đâu — từ hình ảnh, mạng, khối lượng, hoặc dịch vụ Swarm.
Mục Lục
🔹 Các Vấn Đề Thường Gặp Trong Docker
1. Container Không Khởi Động
Nguyên nhân có thể:
- Lệnh hoặc entrypoint không chính xác
- Thiếu biến môi trường
- Xung đột cổng
Cách khắc phục:
bash
docker logs <tên_container>
docker inspect <tên_container>
- Kiểm tra nhật ký để tìm lỗi.
- Xác minh các biến môi trường và cổng.
2. Lỗi Kéo Hình Ảnh
Nguyên nhân có thể:
- Vấn đề mạng
- Tên hoặc tag hình ảnh sai
- Giới hạn của Docker Hub
Cách khắc phục:
bash
docker pull nginx:latest
docker login
docker system prune -f
- Đảm bảo truy cập mạng và tên hình ảnh đúng.
3. Vấn Đề Khối Lượng & Dữ Liệu
Nguyên nhân có thể:
- Lỗi quyền
- Đường dẫn gắn sai
Cách khắc phục:
bash
docker volume ls
docker volume inspect <tên_khối_lượng>
- Sửa quyền sở hữu và đường dẫn.
- Sử dụng
chownnếu cần thiết.
4. Vấn Đề Mạng Lưới
Nguyên nhân có thể:
- Xung đột cổng
- Các container không thể giao tiếp
- Cấu hình mạng overlay sai
Cách khắc phục:
bash
docker network ls
docker network inspect <tên_mạng>
docker exec -it <tên_container> ping <tên_container_khác>
- Xác minh các mạng và kết nối.
5. Vấn Đề Swarm & Stack
Nguyên nhân có thể:
- Dịch vụ không chạy trên các node
- Secrets/configs không được áp dụng
- Cập nhật cuộn thất bại
Cách khắc phục:
bash
docker service ls
docker service ps <tên_dịch_vụ>
docker stack ps <tên_stack>
docker service logs <tên_dịch_vụ>
- Kiểm tra trạng thái node, nhiệm vụ dịch vụ và nhật ký.
🔹 Mẹo Gỡ Rối
- Sử dụng
docker inspectđể hiểu cấu hình container. - Kiểm tra nhật ký với
docker logs -f. - Dọn dẹp các tài nguyên không sử dụng:
docker system prune -f. - Sử dụng
docker statsđể theo dõi việc sử dụng tài nguyên theo thời gian thực.
🔹 Thử Thách Thực Hành
- Chạy một container với lệnh sai và sửa lỗi bằng cách sử dụng nhật ký.
- Giả lập một xung đột mạng và giải quyết bằng các lệnh
docker network. - Phá vỡ một gắn kết khối lượng và sửa quyền.
- Triển khai một stack Swarm và khắc phục các lỗi dịch vụ.
🔹 Câu Hỏi Thường Gặp
1. Làm thế nào để khắc phục lỗi container không khởi động?
Kiểm tra nhật ký và xác minh lệnh khởi động cùng với biến môi trường và cổng.
2. Tôi nên làm gì nếu không thể kéo hình ảnh từ Docker Hub?
Xác nhận kết nối mạng và kiểm tra tên hình ảnh.
3. Làm thế nào để tôi kiểm tra mạng giữa các container?
Sử dụng lệnh ping từ một container đến một container khác để kiểm tra kết nối.
✅ Tập tiếp theo: Tập 26 — Tối Ưu Hóa Hình Ảnh Docker & Các Thực Hành Tốt Nhất — làm cho hình ảnh của bạn nhanh hơn, nhỏ hơn và an toàn hơn cho sản xuất.