Trong trường hợp này:
- Pgadmin không kết nối được với localhost, nhưng psql hoạt động từ docker bên ngoài.
- cả pgadmin và Postgres đều đang chạy dưới dạng Vùng chứa
Mặc dù bạn chưa cho biết liệu bạn có đang làm như vậy hay không, nhưng lý tưởng nhất là cả hai vùng chứa đều có thể là một phần của cầu nối tùy chỉnh mạng để phân giải DNS tự động.
Nếu không được thêm một cách rõ ràng, chúng sẽ là một phần của mạng cầu nối mặc định.
Để tìm ra các mạng được tạo trong thời gian chạy của docker, hãy nhập:$ docker network ls
Một số mạng sẽ được liệt kê trong bảng điều khiển, có thể bạn sẽ tìm thấy [name]_default
nó phải là mạng của bạn.
Thực thi docker network inspect [name]_default
it'll show up a bunch of information, for us the most important is IPv4Address, something like this:"7c3cd7532ab8aacc70830afb74adad7296d9c8ddd725c498af2d7ee2d2c2aadd": {
"Name": "intime_postegres_1",
"EndpointID": "56a9cb574469f22259497b72719f9f4a3e555b09f95058fcf389ef5287381f28",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
Thay vì sử dụng localhost cho tên / ip máy chủ trong hộp thoại máy chủ mới pgAdmin, hãy kết nối với "IPv4Address" của phiên bản postgres.
Trong trường hợp của tôi, kết nối tại 172.18.0.2:5432
, hoạt động như một sự quyến rũ.