请参见以下命令:
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/。但是,它没有告诉我原因。
答案 0 :(得分:2)
(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,我希望它可以正常工作。