Docker 从另一个容器连接到 redis 容器时为什么报错 Name or service not known?-灵析社区

爱打瞌睡的三角龙

**_redisConnectOptions_** const redisConnectOptions: RedisConnectOptions = { hostname: "redis://redis-stack", port: 6379, }; **_docker-compose.yml_** redis-stack: image: redis/redis-stack:latest container_name: redis-stack ports: - "6379:6379" - "6380:8001" networks: - my-network **_docker log_** 2024-05-19 18:53:04 error: Uncaught (in promise) Error: failed to lookup address information: Name or service not known 2024-05-19 18:53:04 : await Deno.connect(dialOpts); 2024-05-19 18:53:04 ^ 2024-05-19 18:53:04 at async Object.connect (ext:deno_net/01_net.js:587:55) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:190:11) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7) 2024-05-19 18:53:04 at async RedisConnection.#connect (https://deno.land/x/redis@v0.32.0/connection.ts:222:7)

阅读量:147

点赞量:0

问AI
错误信息表明在尝试连接到名为 "redis://redis-stack" 的 Redis 服务器时发生了 DNS 解析错误,即“Name or service not known”。这通常意味着客户端无法将主机名 "redis://redis-stack" 解析为 IP 地址。 问题出在 "redisConnectOptions" 的 "hostname" 字段上。"hostname" 应该只包含 "Redis" 服务器的名称或 IP 地址,而不是包含协议前缀(如 "redis://")。 修改后的 "redisConnectOptions" 应该是这样的: const redisConnectOptions: RedisConnectOptions = { hostname: "redis-stack", // 移除 "redis://" 前缀 port: 6379, };