选择容器端口号
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,我希望这样上班。
请看下面的命令:
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,我希望这样上班。