Wie zwischen zwei Andockfensters Behältern (mssql und .NET Kern app) zu kommunizieren,

stimmen
0

Ich habe folgendes Problem: Ich habe folgende Docker-compose Datei

version: 3
services:
    web:
        build: .
        ports:
            - 8000:80
        links:
            - my-special-db
        networks:
            - demo-net
    my-special-db:
        image: microsoft/mssql-server-windows-developer
        ports:
            - 1433:1433
        environment:
            - ACCEPT_EULA=Y
            - sa_password=demo
        networks:
            - demo-net
networks:
        demo-net:
          driver: nat

Im appsettings.Docker.json habe ich die folgende Verbindungszeichenfolge: Connection: { DefaultConnection: Server = my-special-db; Database = ContosoUniversity3; Trusted_Connection = True; Multiple = true}

Ich habe versucht, beiläufig auch das Passwort, funktioniert es nicht. Was mache ich falsch?

Veröffentlicht am 19/12/2018 um 14:08
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Sie müssen beide Dienste in einem gemeinsamen Netzwerk hinzuzufügen.

Bitte rede dieses Dokument: Docker Networks

In jedem Ihrer Dienstleistungen an:

  networks:
   - sql-net

Am Ende der Compose-Datei:

networks:
   sql-net:
     driver: bridge

Dann werden Sie in der Lage sein, in die Datenbank durch die Containernamen zu verbinden, in Ihrem Fall my-special-db

EDIT 1 - Netzwerktreiber unter Windows

Der Fehler durch die OP berichtete legt nahe , dass es unter Windows 10. Es gibt einen offenen Fehler für sie hier

Es gibt Berichte , dass die Verwendung von transparentTreiber funktionieren könnte:

networks:
   sql-net:
     driver: transparent

EDIT 2 - Link Option

Sie können auch versuchen , das Erbe mit Link - Funktion . Fügen Sie diese auf den webBehälter:

web:
  links:
    - my-special-db
Beantwortet am 19/12/2018 um 14:16
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more