Node.js 如何使用docker compose设置NodeJs客户端和服务器?

Node.js 如何使用docker compose设置NodeJs客户端和服务器?,node.js,docker,docker-compose,Node.js,Docker,Docker Compose,我有以下node.js脚本: client.js const net = require('net'); const client = new net.Socket(); client.connect(9233, 'server', (error) => { console.log('Connected to packet feed'); }); client.on('error', (err) => { console.log(err); }) const n

我有以下
node.js
脚本:

client.js

const net = require('net');
const client = new net.Socket();

client.connect(9233, 'server', (error) => {
    console.log('Connected to packet feed');
});

client.on('error', (err) => {
    console.log(err);
})
const net = require('net');

const server = net.createServer((socket) => {
});

server.listen(9233, 'localhost');
server.js

const net = require('net');
const client = new net.Socket();

client.connect(9233, 'server', (error) => {
    console.log('Connected to packet feed');
});

client.on('error', (err) => {
    console.log(err);
})
const net = require('net');

const server = net.createServer((socket) => {
});

server.listen(9233, 'localhost');
以及下面的
docker compose.yaml

version: '3'
services:
  server:
    build: .
    volumes:
      - ./:/usr/src/app
    command: node server.js
    ports:
      - "9233:9233"
  client:
    build: .
    volumes:
      - ./:/usr/src/app
    environment:
    command: node clients.js
    links:
      - server
    depends_on:
      - server
如果在我的机器上运行
node server.js
node client.js
,它们会成功地相互连接

但是如果我运行
docker compose up
,我将得到以下错误:

client_1       | Error: connect ECONNREFUSED 172.26.0.2:9233
client_1       |     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1056:14) {
client_1       |   errno: 'ECONNREFUSED',
client_1       |   code: 'ECONNREFUSED',
client_1       |   syscall: 'connect',
client_1       |   address: '172.26.0.2',
client_1       |   port: 9233
client_1       | }
我做错了什么?
我已经尝试了我能做的一切,包括
docker compose run--service ports
而不是
docker compose up
服务器中。listen()
调用时,需要指定神奇的IPv4“everywhere”地址0.0.0.0。如果在那里指定
localhost
,则无法从容器外部访问它。(它只接受来自容器的
localhost
的连接,每个容器都有自己的
localhost

您是否尝试使用不同的端口来连接实例?尝试将左侧端口更改为肯定未使用的端口,如15000,然后再次运行。