nid*_*kil 9 redis docker docker-compose
我有一个 Docker Compose 文件,它启动两个服务:Redis 和 Redis Commander。使用默认的 Redis 端口 6379 可以正常工作。将Redis端口更改为6380
Redis Commander后,无法再连接到Redis。
错误:
setUpConnection Redis error Error: connect ECONNREFUSED 172.19.0.2:6380
Run Code Online (Sandbox Code Playgroud)
这是docker-compose.yml
文件:
version: '3.7'
services:
redis:
container_name: redis
hostname: redis
image: sameersbn/redis:4.0.9-2
ports:
- "6380:6379"
expose:
- "6380"
volumes:
- type: volume
source: redis-data
target: /data
restart: always
redis-commander:
container_name: redis-commander
hostname: redis-commander
image: rediscommander/redis-commander:latest
restart: always
environment:
- REDIS_HOSTS=local:redis:6380
ports:
- "8082:8081"
volumes:
redis-data: {}
Run Code Online (Sandbox Code Playgroud)
我可以6380
使用以下节点代码在端口上连接到 Redis :
import redis from 'redis'
const config = {
host: '127.0.0.1',
port: 6380,
no_ready_check: true
}
const client = redis.createClient(config.port, config.host)
client.set('expireName', 'nidkil', (err, reply) => {
if (err) {
console.error('Error occurred:', err)
} else {
console.log('Response:', reply)
}
})
Run Code Online (Sandbox Code Playgroud)
如果我更改端口回6379
在docker-compose.yml
随后Redis的指挥官可以连接。
有什么建议可以让 Redis Commander 在端口上连接到 Redis 6380
?
nid*_*kil 17
@Mihai 的回答帮助我找到了解决方案。我需要更改运行 Redis 的端口以及暴露的端口。这是工作的 Docker 撰写文件。
version: '3.7'
services:
redis:
container_name: redis
hostname: redis
image: sameersbn/redis:4.0.9-2
command: --port 6380
ports:
- "6380:6380"
expose:
- "6380"
volumes:
- type: volume
source: redis-data
target: /data
restart: always
redis-commander:
container_name: redis-commander
hostname: redis-commander
image: rediscommander/redis-commander:latest
restart: always
environment:
- REDIS_HOSTS=local:redis:6380
ports:
- "8082:8081"
volumes:
redis-data: {}
Run Code Online (Sandbox Code Playgroud)
您更改了主机上公开的端口。您没有更改容器中的内部端口。您的 Redis 实例继续在默认端口 (6379) 上运行。
该语句也expose: - "6380"
可以省略,因为它没有用。
归档时间: |
|
查看次数: |
8533 次 |
最近记录: |