我把redis容器的服务名从“redis-server”改成了“redis”。问题是node-js容器无法解析服务名称“redis”,node-js容器因为这个问题而自动宕机。当我从“redis”切换回 redis 容器的服务名称到“redis-server”时,两个容器启动并运行,一切正常。
这是 Node-js 代码
const express = require('express');
const redis = require('redis');
const app = express();
const client = redis.createClient({
host: 'redis',
port: 6379
});
client.set('visits', 0);
app.get('/', (req, res) => {
client.get('visits', (err, visits) => {
res.send('Number of visits is ' + visits);
client.set('visits', parseInt(visits) + 1);
});
});
app.listen(8081, () => {
console.log('Listening on port 8081');
});
这是 docker-compose.yml
version: '3.8'
services:
redis:
image: 'redis'
node-app:
build: .
ports:
- "4001:8081"