【问题标题】:How to connect to SQL Server hosted on Docker in Azure Ubuntu VM如何连接到 Azure Ubuntu VM 中 Docker 上托管的 SQL Server
【发布时间】:2019-03-20 21:28:14
【问题描述】:

我已经在 Azure Ubuntu VM 上安装了 SQL Server 2019 docker。容器已启动并正在运行。但是,我无法从 VM 外部使用 SSMS 连接到它。在运行容器时,我使用端口 1450 映射到 1433。此外,我已将 NSG 配置为允许流量。 尽管如此,我还是没有运气。

iptables -L

NSG

谢谢

【问题讨论】:

    标签: azure docker ubuntu azure-virtual-machine


    【解决方案1】:

    要在 Ubuntu 上通过 Docker 运行 SQL Server,您可以按照以下步骤操作:

    1. 将 docker 镜像拉到你的 Ubuntu 主机:

      docker pull mcr.microsoft.com/mssql/server:2019-CTP2.2-ubuntu

    2. 通过 docker 命令运行镜像:

      docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=azureUser@2018' -p 1450:1433 -d --name mssql mcr.microsoft.com/mssql/server:2019-CTP2.2-ubuntu

    3. 检查容器是否运行良好,您可以通过 docker 命令执行此操作:

      sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P '<YourStrong!Passw0rd>'

    4. 在与您的 VM 关联的 NSG 中打开端口 1450

    5. 通过 SSMS 连接 SQL Server,如下所示:

    注意:如果在 Ubuntu VM 中打开防火墙,还需要在防火墙中打开端口。

    您可以在Microsoft SQL Server 中找到 Docker 镜像信息以及有关Run && Connect the SQL Server image with Docker 的更多详细信息。

    更新:

    当你检查 NSG 规则时,我建议你可以进入 VM 网络,它会显示所有与子网和 NIC 关联的 NSG。如果允许端口,您应该将规则添加到两个 NSG 或将 NSG 更改为相同,然后您可以只将规则添加到一个 NSG。检查 NSG 规则如下:

    【讨论】:

    • 谢谢。这正是我所做的。我可以从 Ubuntu 本地连接 SQL 服务器。但是,不是来自外部 vm
    • @user1716729 是否添加了 NSG 规则以允许 VM 使用端口 1450?我可以在外面连接它。
    • @user1716729 好的,在SSMS中输入服务器名称时,IP和端口之间有逗号,是吗?
    • @user1716729 也许您可以将源更改为任何 NSG 规则的端口 1450。此外,您可以检查机器中是否有规则阻止流量。
    • @user1716729 您在 VM 中的 Docker 上运行 SQL Server 是否有任何更新?
    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2021-07-30
    • 1970-01-01
    • 2020-04-15
    • 2017-09-10
    • 2021-05-02
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多