web-dev-qa-db-ja.com

SQL Server Management Studioを使用してDockerコンテナにリモート接続する

Context:SQLの学習を続け、Microsoft SQL Server Management Studioを使用できる開発SQL Serverを構築しようとしています(SSMS)Windows PCでアクセスします。

だから、DigitalOcean Ubuntu 16.04ボックスで実行されているMS SQL Server 2017のDockerコンテナにAdventureWorksデータベースがあります。 MacからサーバーにリモートSSHで接続し、コンテナにアクセスしてデータベースを照会できます。

ただし、Windows PCでSSMSを使用したいので、リモートボックスへの接続を開始する方法がわかりません。下の図では、SSHキーを指定するオプションや、Ubuntuボックスにログインするオプションはなく、SQLサーバーにアクセスするだけです。

enter image description here

これも可能ですか?

19
noobmaster69

パブリックIPアドレスを使用してSSMS経由で接続し、その後にコンマ区切り文字とポート(xxx.xx.xx.xxx、port)を続けます

この作業を行うには、sa資格情報も必要です。

23
paul stanton

Localhost ipを使用してローカルに接続できます。その場合、サーバー名の入力は127.0.0.1、port#になります

For clarity, I attached image of my SSMS Connection Dialog

3

このサイトの指示に従って、Windows Containersでそれを解決しました: https://www.sqlshack.com/sql-server-with-a-docker-container-on-windows-server-2016/ SSMSからすぐにSQL Serverに接続できました。

次のコマンドを使用して、これがLinuxコンテナーでも機能する場合は、試してみてください。

docker run --name mssqltrek-con1 -d -p 1433:1433 -e sa_password=My$eCurePwd123# -e ACCEPT_EULA=Y Microsoft/mssql-server-windows-developer

これを実行した後、次のコマンドで正しいIPを取得できます。

docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" mssqltrek-con1
2
Bart VdA

SSMS経由で接続しようとしたときにも、同じ問題に直面しました。localhostで試したところ、1433も助けにはなりませんでした。 ここに画像の説明を入力

いくつかの研究開発の後、私はそれを解決する方法を見つけました

  • Dockerツールボックスの一部としてインストールされるKubernetesを開きます(私の場合は、hyper-vをサポートしない10のホームが勝ちました)
  • アプリの左側にあるSQLコンテナをクリックします
  • アプリの右側にあるIPアドレスをコピーします
  • sSMSの資格情報とともにXXX.XXX.XX.XX、1433のようなポートでIPアドレスを使用します

ここに画像の説明を入力

0
user2351143

私の場合、ホストがコンテナIPに接続するのをブロックしていたのはCisco VPNでした。下の図に示すように、「Cisco Any Connect Network Access Manager」のチェックを外す必要がありました。これにより、VPNが接続を管理しなくなります。

enter image description here

0