web-dev-qa-db-fra.com

Utilisation de SQL Server Management Studio pour se connecter à distance au conteneur Docker

Contexte : J'essaie de créer un SQL Server de développement sur lequel je peux continuer à apprendre SQL et utiliser Microsoft SQL Server Management Studio (SSMS) pour accéder sur un PC Windows.

J'ai donc la base de données AdventureWorks assise sur un Docker Container pour MS SQL Server 2017 fonctionnant sur une boîte DigitalOcean Ubuntu 16.04. Depuis mon Mac, je peux connecter SSH à distance au serveur, accéder au conteneur et interroger la base de données.

Cependant, je souhaite utiliser SSMS sur mon PC Windows et je ne sais pas comment je commence à me connecter au boîtier distant. Dans l'image ci-dessous, il n'y a pas d'options pour spécifier une clé SSH ou même pour vous connecter à la boîte Ubuntu, uniquement pour accéder au serveur SQL.

enter image description here

Est-ce seulement possible?

19
noobmaster69

se connecter via SSMS en utilisant l'adresse IP publique, suivi du séparateur de virgules puis du port (xxx.xx.xx.xxx, port)

Vous aurez également besoin des informations d'identification sa pour que cela fonctionne.

23
paul stanton

Vous pouvez utiliser l'ip localhost pour vous connecter localement. Dans ce cas, l'entrée du nom du serveur deviendra 127.0.0.1, port #

For clarity, I attached image of my SSMS Connection Dialog

3
MuhammadUmarFarooq

Suivre les instructions de ce site l'a résolu pour moi sur les conteneurs Windows: https://www.sqlshack.com/sql-server-with-a-docker-container-on-windows-server-2016/ Il était possible de se connecter à SQL Server instantanément à partir de SSMS.

Essayez-le si cela fonctionne également sur des conteneurs Linux avec cette commande:

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

Après avoir exécuté cela, vous pouvez récupérer l'IP correcte avec:

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

J'ai également rencontré le même problème lorsque j'essaie de me connecter via SSMS, même si j'ai essayé avec localhost, 1433 cela ne m'aide pas. entrez la description de l'image ici

Après quelques recherches, j'ai trouvé le moyen de le résoudre

  • Ouvrez Kubernetes qui sera installé dans le cadre de la boîte à outils Docker (le mien était Win 10 Home qui ne prend pas en charge Hyper-V)
  • cliquez sur le conteneur sql qui sera dans le côté gauche de l'application
  • copiez l'adresse IP qui sera dans le côté droit de l'application
  • utiliser l'adresse IP avec un port comme XXX.XXX.XX.XX, 1433 avec les informations d'identification dans SSMS

entrez la description de l'image ici

0
user2351143

Dans mon cas, c'était le VPN Cisco qui bloquait l'hôte pour se connecter à l'IP du conteneur. J'ai dû décocher le "Cisco Any Connect Network Access Manager" comme indiqué dans l'image ci-dessous pour que cela fonctionne. Il garantit que le VPN ne gère plus la connexion.

enter image description here

0
Aashish Upadhyay