从 Linux Docker 容器连接到远程 MSSQL 数据库
Connect to Remote MSSQL db from Linux Docker container
我有一个基于 microsoft/mssql-server-linux/ 图像构建的 linux docker 容器。容器此时没有任何东西,我正在尝试连接到某处 windows 服务器上托管的远程 MSSQL 数据库。我不确定我该怎么做。
microsoft/mssql-server-linux/ 的文档没有提供太多细节。任何帮助,将不胜感激。
更新:
我现在有容器在工作。但是,如果我尝试通过 bash 脚本创建和播种数据库,容器将以代码 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 服务器本身已关闭。
文档非常清楚。有关详细信息,请参阅 Connect and Query
1.First 您必须安装 SQLCMD 工具,因为它们不会自动安装
- 导入 public 存储库 GPG 密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- 注册 Microsoft Ubuntu 存储库
curl 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 localhost -U SA -P ''
对于远程:
sqlcmd -S 192.555.5.555 -U SA -P ''
我有一个基于 microsoft/mssql-server-linux/ 图像构建的 linux docker 容器。容器此时没有任何东西,我正在尝试连接到某处 windows 服务器上托管的远程 MSSQL 数据库。我不确定我该怎么做。
microsoft/mssql-server-linux/ 的文档没有提供太多细节。任何帮助,将不胜感激。
更新: 我现在有容器在工作。但是,如果我尝试通过 bash 脚本创建和播种数据库,容器将以代码 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 服务器本身已关闭。
文档非常清楚。有关详细信息,请参阅 Connect and Query
1.First 您必须安装 SQLCMD 工具,因为它们不会自动安装
- 导入 public 存储库 GPG 密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
- 注册 Microsoft Ubuntu 存储库
curl 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 localhost -U SA -P ''
对于远程:
sqlcmd -S 192.555.5.555 -U SA -P ''