SQL Server Management Studio를 사용하여 도커 컨테이너에 원격 연결
컨텍스트:Microsoft SQL Server Management Studio(SQL Server Management Studio)에서 계속해서 SQL을 배울 수 있는 개발 SQL Server Management Studio).SSMS
Windows PC에서 액세스할 수 있습니다.
DigitalOcean Ubuntu 16.04 박스에서 실행되는 MS SQL Server 2017용 Docker Container에 AdventureWorks 데이터베이스가 있습니다.Mac에서 SSH를 서버에 원격으로 연결하고 컨테이너에 액세스하고 데이터베이스를 쿼리할 수 있습니다.
하지만 Windows PC에서 SSMS를 사용하고 싶어서 원격 상자에 연결하는 방법을 잘 모르겠습니다.아래 그림에서는 SQL 서버에 액세스하기 위해서만 SSH 키를 지정하거나 Ubuntu 상자에 로그인하는 옵션이 없습니다.
이게 가능할까요?
공용 IP 주소를 사용하여 SSMS를 통해 연결한 다음 쉼표 구분 기호를 사용하고 포트(xxx.xx.xx.xxx ,port)를 사용합니다.
이 작업을 수행하려면 자격 증명도 필요합니다.
이 경우 서버 이름 입력이 서버 IP, 포트 #가 됩니다.
ssh가 필요 없습니다. SQL Server 서비스를 인터넷에 노출하기만 하면 됩니다.
SQL Server Management Studio를 사용하여 로컬 시스템의 도커 컨테이너에 연결할 때 localhost ip를 사용할 수 있습니다.이 경우 Server Name 입력은 127.0.0.1,port#이 됩니다.
이 사이트의 지침에 따라 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
저의 경우 컨테이너 IP에 연결하기 위해 호스트를 차단한 것은 Cisco VPN이었습니다.작동하려면 아래 이미지에 표시된 "Cisco Any Connect Network Access Manager"의 선택을 취소해야 했습니다.이렇게 하면 VPN이 더 이상 연결을 관리하지 않습니다.
SQL 도커 서버에 연결할 수 있습니다.
- 도커 이미지가 호스팅되는 시스템의 IP 사용, 포트
IP_Of_Machine, 포트
사용자 - sa(기본값) 및 암호를 제공합니다.
명령도 할 수 있습니다>
도커 exec -it <container_id | container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -USA -P <your_password>
이 문제는 OP와 정확히 같은 문제는 아니지만 SQL Server Management Studio에서 SQL 도커 컨테이너를 생성한 후 로그인할 수 없습니다.알고 보니 제가 사용한 sa 비밀번호가 보안이 충분하지 않았습니다.컨테이너를 삭제하고 더 안전한 암호로 다시 생성하면 SQL Server Management Studio에서 컨테이너에 연결할 수 있습니다.암호를 충분히 강력하게 지정하지 않으면 컨테이너가 계속 생성됩니다. 로그인할 수 없습니다!이것이 누군가에게 시간을 좀 절약해 주기를 바랍니다.
저는 이 페이지의 답변으로부터 이익을 얻었지만, 저는 제 자신의 수정을 겪어야 했습니다.어떤 이유에서인지, 저의 경우, 그것은 localhost,1433을 받아들이지 않았지만 127.0.0.1,1433을 받아들였습니다.
에는 저의경는에우를 사용했습니다.docker-compose
연결할 수 없습니다.도커 작성 파일에 포트를 명시적으로 지정하여 수정했습니다.
mysqldb:
ports:
- "1433:1433"
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=SuperSecretPassword!23
image: registry/mysqlimage
SSMS를 통해 연결하려고 할 때도 같은 문제가 발생했습니다. 로컬 호스트와 함께 시도했지만 1433은 도움이 되지 않습니다.여기에 이미지 설명 입력
R&D를 좀 한 후에 해결할 방법을 찾았습니다.
- 도커 도구 상자의 일부로 설치될 오픈 쿠버네테스(내 집은 하이퍼-v를 지원하지 않는 10개의 홈에서 우승함)
- 앱 왼쪽에 있는 SQL 컨테이너를 클릭합니다.
- 앱의 오른쪽에 있을 IP 주소를 복사합니다.
- SSMS의 자격 증명과 함께 XXX.XX.XX.XX,1433과 같은 포트가 있는 IP 주소 사용
언급URL : https://stackoverflow.com/questions/47984603/using-sql-server-management-studio-to-remote-connect-to-docker-container
'source' 카테고리의 다른 글
UIView의 Superview에 대한 UIView의 위치를 확인합니다. (0) | 2023.07.08 |
---|---|
요청 범위 빈을 다른 빈에 주입합니다. (0) | 2023.07.08 |
Vuex 대신 Apollo & GraphQL 캐싱을 사용하시겠습니까? (0) | 2023.07.08 |
클래스에 정의된 기능이 있는지 확인하는 가장 빠른 방법은 무엇입니까? (0) | 2023.07.08 |
TypeScript의 MIME-Type은 무엇입니까? (0) | 2023.07.08 |