2016-09-21 22 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上ドッカーのバージョンは次のとおりです。1.12.1, build 23cf638

ウィンドウサーバー2016 TP5のビルドがある:14300.rs1_release_sv.160907-0755

netstat -aを実行すると、1433年には、コンテナでの聞いているが、1433年はがオンに聞かれていないことを確認し、ホスト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は、インスタンスを見つけることができず、私は私が間違ってやっているかわからないんだけど。

答えて

2

私は、ホストVMから接続するときにポートとIPを指定する必要があることが判明しました。私はデフォルトのSQLサーバーポートを使用しているので、私はそれをする必要はないと思った。

は、このコマンドからコンテナIPを手に入れた:

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

サーバー名: "IP"、 "ポート" \ "INSTANCENAMEは" 働いており、ホストVM上でのsqlcmdとSSMSの両方で取得することができました。

+0

リグ:1台車:73 + ... ct --format "{{.NetworkSettings.Networks.nat.IPAddress}}" <8cfa4ea2 ...将来の使用のために予約 +〜 演算子 '<'。 + CategoryInfo:ParserError:(:) []、ParentContainsErrorRecordException + FullyQualifiedErrorId:RedirectionNotSupported – daniele3004

0

あなたはこのドッキングウィンドウのためにIPアドレスを設定し、この1との接続を試みることができます。

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

関連する問題