2018年11月25日 星期日

Docker connect sql server by sqlcmd

env: CentOS 7
        Docker docker-ce-18.05.0.ce
        SQL Server 2017 Linux

當我們在docker啟動SQL Server 2017容器,嘗試使用sqlcmd連線SQL Server。

1.檢查docker上process執行狀態
command:
sudo docker ps -a
找到一個container id:3a5e5ff26d9d 的SQL Server
[root@localhost ~]# sudo docker ps -a

CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS                    PORTS                    NAMES

3a5e5ff26d9d        microsoft/mssql-server-linux:2017-latest   "/opt/mssql/bin/sqls…"   2 hours ago         Up 4 seconds              0.0.0.0:1433->1433/tcp   sqlenterprise

2.在已經安裝好sqlcmd的本機機器進行連線(連線本機的SQL Server in docker)
command:
sqlcmd -S 0.0.0.0,1433 -U sa -P 'Passw0rd@1234'
 
[oracle@localhost ~]$ sqlcmd -S 0.0.0.0,1433 -U sa -P 'Passw0rd@1234'
1> select @@servername
2> go
--------------------------------------------------------------------------------------------------------------------------------
3a5e5ff26d9d                                                                                                                    

(1 rows affected)


3.嘗試使用docker本身提供的ip進行連線SQL Server
command:
sqlcmd -S 172.17.0.2,1433 -U sa -P 'Passw0rd@1234'

[oracle@localhost ~]$ sqlcmd -S 172.17.0.2,1433 -U sa -P 'Passw0rd@1234'
1> select @@servername
2> go
--------------------------------------------------------------------------------------------------------------------------------
3a5e5ff26d9d                                                                                                                   
(1 rows affected)

1> exit
*因為我們在建立SQL Server容器並沒有提供特定ip,所以SQL Server的ip是docker網卡提供的ip
當時使用的指令如下:
 
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Passw0rd@1234' \
-p 1433:1433 --name sql1 \
-d microsoft/mssql-server-linux:2017-latest

 

沒有留言:

張貼留言