2016-09-21 6 views
1

Windows 컨테이너를 통해 Windows Server 2016 TP5에서 실행되는 SQL Server 2014 Express를 얻으려고했습니다.호스트 VM의 SQL Server Express 컨테이너에 연결할 수 없습니다.

가이드 라인을 따른 후 here 나는 Sql Server Express로 컨테이너를 시작하고 데이터베이스를 연결할 수 있습니다.

내 전체 docker run 명령 :

docker run -p 1433:1433 -v C:/temp/:C:/temp/ --env sa_password=xxxx --env attach_dbs="[{'dbName': 'Docker', 'dbFiles': ['C:\\temp\\Docker.mdf', 'C:\\temp\\Docker_log.ldf']}]" microsoft/msslq-server-2014-express-windows 

그러나, 나는 용기의 SQL Server Express 인스턴스에 호스트 VM (서버 2016)에 SSMS 연결을 시도 할 때 내가 부족 어떤 부분을 알아낼 수 없습니다.

docker run 명령에서 SQL Server의 기본 포트 (1433)를 사용하고 있습니다.

호스트 VM에

도커 버전은 다음과 같습니다 14300.rs1_release_sv.160907-0755

netstat -a 1433 컨테이너에서 대기하고되고 있음을 확인하는 실행하지만, 1433에 귀를 기울되고 하지입니다 : 1.12.1, build 23cf638

윈도우 서버 2016 TP5 빌드입니다 호스트 VM 컨테이너가 실행되는 동안 docker ps 실행

는 포트 1433 내가 sa 사용자가 사용하고 VM 호스트에서 SSMS를 통해 용기에 SQL Server 인스턴스에 연결하려면 0.0.0.0:1433->1433/tcp

로 매핑과 함께 암호를 설정되어 있는지 확인 나는 다음과 같은 PowerShell을 검색 한 컨테이너의 내부 IP 주소는 :

docker inspect --format "{{ .NetworkSettings.Networks.nat.IPAddress }}" <containerid> 

불행하게도, SSMS 인스턴스를 찾을 수 없습니다 그리고 내가 잘못 뭘하는지 모르겠어요.

당신이 고정 표시기에 대한 IP 주소를 설정하고이 하나와 연결을 시도 할 수 있습니다

답변

2

호스트 VM에서 연결할 때 IP뿐만 아니라 포트도 지정해야합니다. 나는 디폴트 SQL 서버 포트를 사용하고 있기 때문에 그렇게 할 필요가 없다고 생각했다.

docker inspect --format "{{ .NetworkSettings.Networks.nat.IPAddress }}" <containerid>

서버 이름 :

이 명령의 컨테이너 IP를 얻었다 "IP", "포트"\ "는 인스턴스 이름이"근무를했다 할 호스트 VM에 SQLCMD 및 SSMS 모두 얻을 .

+0

리가 : 1 대 : 73 + ... ct --format "{{.NetworkSettings.Networks.nat.IPAddress}}"<8cfa4ea2 ...향후 사용을 위해 예약 + ~ 운영자 '<'. + CategoryInfo : ParserError (:) [] ParentContainsErrorRecordException + FullyQualifiedErrorId : RedirectionNotSupported – daniele3004

0

:

docker run -p 192.168.0.2:1433:1433 -v C:/temp/:C:/temp/ --env sa_password=xxxx --env attach_dbs="[{'dbName': 'Docker', 'dbFiles': ['C:\\temp\\Docker.mdf', 'C:\\temp\\Docker_log.ldf']}]" microsoft/msslq-server-2014-express-windows 

또는 시스템에 대한 적절한 IP 주소를. 이제이 주소를 사용하여 연결할 수 있습니다.

+0

다음과 같은 오류가 발생합니다 :'데몬으로부터의 오류 응답 : 네트워크 NAT에서 끝점 <컨테이너 이름>을 만들지 못했습니다 : Windows가 NAT 설정에서 호스트 IP 주소를 지원하지 않습니다. ' – Jordan

+0

이 명령은? 'docker inspect --format "{{.NetworkSettings.Networks}}"''map [bridge : ...] (내 경우 브리지) – Florian

+0

결과는 다음과 같다 :'map [nat : 0xc08237a0c0 ]' – Jordan