Unable to connect to SQL Server Linux Docker conta

2019-07-10 00:16发布

问题:

I'm quite new to Linux OS's so hope this isn't a stupid question!!

Software:
Windows 10 Pro
Docker for Windows (1.13.0-beta38 (9805))
SQL Server Management Studio v17.0 RC1

Issue: I'm trying to connect to my SQL Server Linux container using SSMS. It's not worked, so looking over the documentation it seems you need SQL Server Tools installed (bottom of page) on top of of the SQL Server Linux image.

I followed these instructions to install SQL Server Tools on Ubuntu (base image of SQL Server Linux Image)

Error: bash: curl: command not found

Steps to reproduce error:

  • Pull latest microsoft/sql-server-linux image
  • Run according to instructions: docker run -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux
  • Attach to container using: docker exec -it <container_id> /bin/bash
  • Attempt to import public repository GPG keys: curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Thing's I've tried:

  • I've tried running apt-get install curl but all i get is E: Unable to locate package curl
  • Googling - to no end

First edit - Connecting via SSMS I've tried connecting to the container from SSMS using the following server names (I am using SQL authentication with the credentials specified during the docker run command):

  • localhost:1433
  • localhost\[container_name]
  • [container_ip_address]:1433

Solution (kind of)
OK so i got this working. But I'm not 100% sure what did the trick.
I used localhost as the server name (defaults to port 1433)
I also mounted a volume to the container as part of my docker-compose.yml file:

volumes: 
  - C:\local\volume\path:/var/opt/mssql

SQL Server Linux Logs

Configuring Microsoft(R) SQL Server(R)...
Configuration complete.
This is an evaluation version.  There are [141] days left in the evaluation period.
2017-01-23 08:14:10.39 Server      Microsoft SQL Server vNext (CTP1.1) - 14.0.100.187 (X64)
        Dec 10 2016 02:51:11
        Copyright (C) 2016 Microsoft Corporation. All rights reserved.
        on Linux (Ubuntu 16.04.1 LTS)
2017-01-23 08:14:10.40 Server      UTC adjustment: 0:00
2017-01-23 08:14:10.41 Server      (c) Microsoft Corporation.
2017-01-23 08:14:10.41 Server      All rights reserved.
2017-01-23 08:14:10.42 Server      Server process ID is 4116.
2017-01-23 08:14:10.42 Server      Logging SQL Server messages in file 'C:\var\opt\mssql\log\errorlog'.
2017-01-23 08:14:10.42 Server      Registry startup parameters:
         -d C:\var\opt\mssql\data\master.mdf
         -l C:\var\opt\mssql\data\mastlog.ldf
         -e C:\var\opt\mssql\log\errorlog
2017-01-23 08:14:10.44 Server      SQL Server detected 1 sockets with 2 cores per socket and 2 logical processors per socket, 2 total logical processors; using 2 logical
processors based on SQL Server licensing. This is an informational message; no user action is required.
2017-01-23 08:14:10.45 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2017-01-23 08:14:10.46 Server      Detected 3143 MB of RAM. This is an informational message; no user action is required.
2017-01-23 08:14:10.46 Server      Using conventional memory in the memory manager.
2017-01-23 08:14:10.54 Server      Default collation: SQL_Latin1_General_CP1_CI_AS (us_english 1033)
2017-01-23 08:14:10.68 Server      Buffer pool extension is already disabled. No action is necessary.
2017-01-23 08:14:10.79 Server      InitializeExternalUserGroupSid failed. Implied authentication will be disabled.
2017-01-23 08:14:10.79 Server      Implied authentication manager initialization failed. Implied authentication will be disabled.
2017-01-23 08:14:10.84 Server      The maximum number of dedicated administrator connections for this instance is '1'
2017-01-23 08:14:10.84 Server      Node configuration: node 0: CPU mask: 0x0000000000000003:0 Active CPU mask: 0x0000000000000003:0. This message provides a description o
f the NUMA configuration for this computer. This is an informational message only. No user action is required.
2017-01-23 08:14:10.86 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational m
essage only.  No user action is required.
2017-01-23 08:14:10.87 Server      Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initial
ization' in SQL Server Books Online. This is an informational message only. No user action is required.
2017-01-23 08:14:10.89 Server      Query Store settings initialized with enabled = 1,
2017-01-23 08:14:10.89 spid5s      Starting up database 'master'.
2017-01-23 08:14:10.91 Server      In-Memory OLTP initialized on lowend machine.
2017-01-23 08:14:10.98 Server      Software Usage Metrics is disabled.
2017-01-23 08:14:11.04 spid5s      8 transactions rolled forward in database 'master' (1:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.07 spid5s      0 transactions rolled back in database 'master' (1:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.08 spid5s      Recovery is writing a checkpoint in database 'master' (1). This is an informational message only. No user action is required.
2017-01-23 08:14:11.13 spid5s      Buffer pool extension is already disabled. No action is necessary.
2017-01-23 08:14:11.13 spid5s      Resource governor reconfiguration succeeded.
2017-01-23 08:14:11.13 spid5s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.
2017-01-23 08:14:11.14 spid5s      SQL Server Audit has started the audits. This is an informational message. No user action is required.
2017-01-23 08:14:11.18 spid5s      SQL Trace ID 1 was started by login "sa".
2017-01-23 08:14:11.20 spid5s      Server name is '65507453cf5a'. This is an informational message only. No user action is required.
2017-01-23 08:14:11.23 spid17s     Password policy update was successful.
2017-01-23 08:14:11.24 spid5s      Starting up database 'msdb'.
2017-01-23 08:14:11.24 spid6s      Starting up database 'mssqlsystemresource'.
2017-01-23 08:14:11.26 spid6s      The resource database build version is 14.00.100. This is an informational message only. No user action is required.
2017-01-23 08:14:11.29 spid6s      Starting up database 'model'.
2017-01-23 08:14:11.61 spid5s      7 transactions rolled forward in database 'msdb' (4:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.61 spid6s      7 transactions rolled forward in database 'model' (3:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.63 spid6s      0 transactions rolled back in database 'model' (3:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.63 spid5s      0 transactions rolled back in database 'msdb' (4:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.63 spid6s      Recovery is writing a checkpoint in database 'model' (3). This is an informational message only. No user action is required.
2017-01-23 08:14:11.64 spid5s      Recovery is writing a checkpoint in database 'msdb' (4). This is an informational message only. No user action is required.
2017-01-23 08:14:11.75 spid6s      Polybase feature disabled.
2017-01-23 08:14:11.76 spid6s      Clearing tempdb database.
2017-01-23 08:14:12.10 spid17s     A self-generated certificate was successfully loaded for encryption.
2017-01-23 08:14:12.11 spid17s     Server is listening on [ 0.0.0.0 <ipv4> 1433].
2017-01-23 08:14:12.13 Server      Server is listening on [ 127.0.0.1 <ipv4> 1434].
2017-01-23 08:14:12.13 Server      Dedicated admin connection support was established for listening locally on port 1434.
2017-01-23 08:14:12.14 spid17s     SQL Server is now ready for client connections. This is an informational message; no user action is required.
2017-01-23 08:14:12.40 spid6s      Starting up database 'tempdb'.
2017-01-23 08:14:12.68 spid6s      The tempdb database has 1 data file(s).
2017-01-23 08:14:12.69 spid20s     The Service Broker endpoint is in disabled or stopped state.
2017-01-23 08:14:12.70 spid20s     The Database Mirroring endpoint is in disabled or stopped state.
2017-01-23 08:14:12.71 spid20s     Service Broker manager has started.
2017-01-23 08:14:12.75 spid5s      Recovery is complete. This is an informational message only. No user action is required.
2017-01-23 08:14:15.89 spid29s     The activated proc '[dbo].[sp_syspolicy_events_reader]' running on queue 'msdb.dbo.syspolicy_event_queue' output the following:  'Trans
action (Process ID 29) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.'
2017-01-23 08:19:14.95 spid51      Using 'dbghelp.dll' version '4.0.5'
2017-01-23 08:19:18.62 spid51      Attempting to load library 'xplog70.dll' into memory. This is an informational message only. No user action is required.
2017-01-23 08:19:18.65 spid51      Using 'xplog70.dll' version '2016.140.100' to execute extended stored procedure 'xp_msver'. This is an informational message only; no u
ser action is required.

回答1:

I had the same issue and the comment from Ed Harper resolved my issue:

SSMS uses a comma rather than a colon to delimit between server name and port number. Try localhost,1433. – Ed Harper Jan 23 at 12:52

The server name field in SMSS required a format of locahost,[dockerport]. So in my case I needed:

localhost,32768