Việc sử dụng localhost trong vùng chứa docker là không hợp lệ vì localhost có nghĩa là vùng chứa vùng chứa của chính nó, vì vậy nếu bạn chạy redis-cli từ bên trong vùng chứa web, redis-cli đang cố gắng tìm redis trong vùng chứa web thay vì vùng chứa redis.
Bạn cần chỉ định tên dịch vụ redis - docker (mạng của docker -omp sẽ cụ thể hơn) sẽ giải quyết cho bạn tên dịch vụ thành IP vùng chứa của redis, vì vậy bạn nên sử dụng:
redis-cli -h redis ping
sản lượng dự kiến là:
PONG
Chỉnh sửa:
Câu trả lời đó sẽ chỉ hoạt động nếu cả hai dịch vụ sử dụng cùng một chế độ mạng nên có 2 cách:
- Thêm network_mode:host vào dịch vụ web và sau đó "localhost" cho redis sẽ ổn
- Xóa network_mode:host khỏi redis và sau đó miền "redis" sẽ ổn