选择容器端口号

Choosing Container ports numbers

请看下面的命令:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password1" -p 1433:1433 -d microsoft/mssql-server-linux:2017-latest

在我 运行 这个命令之后,我可以使用 SQL Studio 管理器连接到数据库,如下所示:

我也可以使用:192.168.99.100,1433 连接。 接下来我删除容器并执行以下命令:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Password1" -p 600:600 -d microsoft/mssql-server-linux:2017-latest

这里端口我已经补上了。现在,请看下面的截图:

1)为什么tcp端口是1433?

2) 为什么无法连接到500端口的数据库?

我知道文档告诉您使用端口 1433,如下所示:https://hub.docker.com/r/microsoft/mssql-server-linux/。但是,它没有告诉我为什么。

(1) 图片 Docker 文件大概是 EXPOSE 1433 因为这是服务器侦听的端口; docker ps 中的裸 1433/tcp 输出意味着端口未发布到主机。

(2)当你docker run -p 600:600时,你告诉Docker将主机上的端口600转发到容器中的端口600。该端口上没有任何内容在侦听,因此您无法连接。

(3) 如果你 docker run -p 600:1433,你会告诉 Docker 将主机上的端口 600 转发到服务器正在侦听的容器中的端口 1433,我希望这样上班。