Jak komunikować się między dwoma pojemnikami Döcker (MSSQL i rdzeń .net app)

głosy
0

Mam następujący problem: Mam następujący plik doker-tworzenia,

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

W appsettings.Docker.json Mam następujący ciąg połączenia connectionStrings: { DefaultConnection: Server = my-special-db; Database = ContosoUniversity3; Trusted_Connection = true; MultipleActiveResultSets = true}

Próbowałem mijania również hasło, to nie działa. Co robię źle?

Utwórz 19/12/2018 o 14:08
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
1

Trzeba dodać zarówno usługi we wspólnej sieci.

Proszę rede ten dokument: dokowane Networks

W każdej z usług:

  networks:
   - sql-net

W końcu pliku tworzenia wiadomości:

networks:
   sql-net:
     driver: bridge

Wtedy będziesz w stanie połączyć się z bazą danych za pośrednictwem swojej nazwy kontenera, w przypadku my-special-db

EDIT 1 - Sterowniki sieciowe pod oknami

Błąd zgłoszony przez PO sugeruje, że jest to system Windows 10. Jest otwarte bug dla niego tutaj

Istnieją doniesienia, że za pomocą transparentsterownika może pracować:

networks:
   sql-net:
     driver: transparent

EDIT 2 - Linki Option

Można również spróbować użyć dziedzictwo funkcję łącza . Dodaj do tego webpojemnika:

web:
  links:
    - my-special-db
Odpowiedział 19/12/2018 o 14:16
źródło użytkownik

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