0

我有一个基于microsoft/mssql-server-linux/图像构建的 linux docker 容器。容器此时没有任何内容,我正在尝试连接到托管在某处的 Windows 服务器上的远程 MSSQL 数据库。我不确定我该怎么做。

microsoft/mssql-server-linux/ 的文档没有提供太多细节。任何帮助,将不胜感激。

更新: 我现在已经让容器工作了。但是,如果我尝试通过 bash 脚本创建和播种 db,容器会以代码 0 退出。

这是docker 文件和 docker-compose文件

version: '2'
services:
  db:
    build: .
    ports:
      - "1433:1433"
    environment:
        ACCEPT_EULA: Y
        SA_PASSWORD: Password
        PATH: /opt/mssql-tools/bin:/opt/mssql/bin:$PATH
    container_name: db

FROM microsoft/mssql-server-linux:latest
EXPOSE 1433
RUN echo $PATH
RUN mkdir -p /usr/src/app
COPY ./db/* /usr/src/app/
WORKDIR /usr/src/app
RUN ls
RUN chmod +x /usr/src/app/dbInit.sh
RUN chmod +x /usr/src/app/dbSeed.sh
CMD /bin/bash ./entrypoint.sh

这是我的entrypoint.sh

/opt/mssql/bin/sqlservr & /usr/src/app/dbInit.sh

dbInit.sh包含用于创建数据库、一些表并为其播种的 SQL 脚本。像这样的东西。

sqlcmd -S localhost -U SA -P password -d master -Q "CREATE DATABASE dbo"

docker-compose up --build 成功地创建了数据库、表和种子。但是容器以代码 0 退出。似乎 SQL Server 它自己已关闭。

4

1 回答 1

1

文档很清楚..Connect and Query有关更多详细信息,请参阅

1.首先你必须安装SQLCMD工具,因为它们不是自动安装的

  • 导入公共存储库 GPG 密钥。

卷曲https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key 添加 -

  • 注册 Microsoft Ubuntu 存储库

卷曲https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

  • 更新源列表并使用 unixODBC 开发人员包运行安装命令。

sudo apt-get update sudo apt-get install mssql-tools unixodbc-dev

您可以在此处查看进一步的增强功能:Install tools on Ubuntu

现在您可以像下面这样查询

对于本地:

sqlcmd -S 本地主机 -U SA -P ''

对于远程:

sqlcmd -S 192.555.5.555 -U SA -P ''

于 2017-06-02T16:26:37.360 回答