【发布时间】:2017-06-02 16:10:22
【问题描述】:
我有一个基于 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 自身已关闭。
【问题讨论】:
-
那个图像是服务器,如果你已经在别处有服务器,你真的不应该使用它。
-
@James 谢谢。我想我应该改变我的问题。所以,我需要从 docker 容器访问远程 sql db。有什么想法或想法吗?我有一个 postgres 数据库,我可以使用 postgres 图像从 docker 容器连接到它。但不使用 MSSQL。
-
嗨詹姆斯,我仍然不明白你想要达到什么目的。您是否将一个 mssql 引擎连接到另一个 mssql 引擎?您是否尝试使用链接服务器?或者您只是想从包含应用程序的 另一个 docker 容器连接到在 Docker 上运行的 mssql?
-
我正在尝试从 docker 容器连接 Windows 服务器上的远程数据库。并使用此容器作为 api docker 容器的链接。
标签: docker docker-compose dockerfile sql-server-on-linux