sql-server - 选择容器端口号

标签 sql-server docker docker-machine

请查看以下命令:

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

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

enter image description here

我也可以使用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

我把这里的港口补好了。现在,请参见下面的屏幕截图:

enter image description here

1)为什么tcp端口1433?

2)为什么我不能在端口500上连接到数据库?

我意识到文档告诉您使用端口1433,如下所示:https://hub.docker.com/r/microsoft/mssql-server-linux/。但是,它没有告诉我原因。

最佳答案

(1)镜像Dockerfile大概是EXPOSE 1433,因为这是服务器监听的端口; 1433/tcp中的裸docker ps输出表示未将端口发布到主机。

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

(3)如果您使用docker run -p 600:1433,您将告诉Docker将主机上的端口600转发到服务器正在侦听的容器中的端口1433,我希望它可以正常工作。

关于sql-server - 选择容器端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419446/

相关文章:

SQL Server - 在 XML 数据类型中存储换行符

docker - 使用 docker 和主机文件

php - 在dockerfile中复制时如何创建路径?

tomcat - 如何从浏览器访问在 docker 容器中运行的 tomcat?

docker - Traefik 没有显示 IP 地址

bash - 在 docker-machine : terminal vs shell script 中评估

docker - Gitlab CI with docker+machine - 使用多个容器来测试应用程序

c# - 如何研究 .NET 中的非托管内存泄漏?

c# - 如何在存储过程中将 DateTime 格式传递给 MS sql server?

sql-server - 从 SQL Server 列获取 XML 节点作为逗号分隔列表