如何link内部端口到docker中的外部端口?

How to link internal port to outside port in docker?

我不确定我是否理解 docker 端口概念。假设我在一个容器内有一个应用程序,它在端口 6000 上侦听 tcp 连接。此容器在服务器 A 上。

我想从另一个服务器B连接到应用程序。但是我想在服务器A上启动同一个容器的多个实例,内部端口应该保持6000。但是外部端口应该改变。

例如

container 1 6000->9660
container 2 6000->9661
...

所以应用程序应该从外部公开 9660、9661...这可能吗?我试过:

docker run -p 9660:6000 ...

但是客户端无法连接。有什么想法吗?

我忘记了

EXPOSE 6000

在我的 Dockerfile 中。现在可以了:)