Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

MSSQL на Docker не виден в сети

582  
AlexNek патриот21.04.21 14:20
AlexNek
21.04.21 14:20 

Установил на юних машину докер.

На докер установил вебсайт - работает.

Теперь нужна база еще для тестов. Установил MSSQL, всё по описанию сделал, но как обычно, чего то не хватает.

Все запускается, все логи есть, базы даже локально создает.

Server is listening on [ 'any' <ipv4> 1433].

Server is listening on [ 127.0.0.1 <ipv4> 1434].


В Firewall разрешил 1433 и 1434, но ничего не помогло

По телнету на 1433 попасть нельзя

Через UDL соединение тоже не получается.


Думал микрософт чет то поможет, но как обычно, нет

https://support.microsoft.com/en-us/sbs/topic/solving-conn...

Куда рыть пока не знаю


#1 
Murr патриот21.04.21 16:11
Murr
NEW 21.04.21 16:11 
в ответ AlexNek 21.04.21 14:20

по ТЦП/ИП - в Комманд Промпт

netstat -ano


в результате искать известный порт.

Ъ


Если можешь хоть как-то достучатся - смотри какие протоколы разрешены.
#2 
Murr патриот21.04.21 16:15
Murr
  yurka_ffm знакомое лицо21.04.21 18:37
NEW 21.04.21 18:37 
в ответ AlexNek 21.04.21 14:20

Голый Докер? Это ж мазохизм. Поставь k3s и потом helm-ом всё остальное. Кубер сеть pod->service->ingress сам тебе настроит (ну почти).

#4 
AlexNek патриот21.04.21 21:12
AlexNek
NEW 21.04.21 21:12 
в ответ Murr 21.04.21 16:11

Хорошая идея. Прогнал "порт сканнером" - 1443 не открыт отчего то.

Бум искать.

#5 
AlexNek патриот21.04.21 21:17
AlexNek
NEW 21.04.21 21:17 
в ответ yurka_ffm 21.04.21 18:37
Голый Докер?

Ну так раньше просто виртуалка была на винде - прогресс улыб


Для начала нужно иметь в системе Kubernetes и что то мне кажется что для такой малышки это будет слишком много.

Ну и ингресс мне и даром не нужен.

#6 
AlexNek патриот21.04.21 21:20
AlexNek
NEW 21.04.21 21:20 
в ответ Murr 21.04.21 16:15

так в логах же есть

Server is listening on [ 'any' <ipv4> 1433].

#7 
AlexNek патриот21.04.21 22:55
AlexNek
NEW 21.04.21 22:55 
в ответ AlexNek 21.04.21 21:12

оказывается контейнер не был отчего то запушен.

Как запустил - появился открытый порт, но телнет через него все равно не идет.

#8 
Murr патриот21.04.21 23:23
Murr
NEW 21.04.21 23:23 
в ответ AlexNek 21.04.21 21:12

1433

#9 
AlexNek патриот21.04.21 23:33
AlexNek
NEW 21.04.21 23:33 
в ответ Murr 21.04.21 23:23

угу 1443 появился.

А какое имя пользователя для Express версии?

Для Developer версии "sa". Но вот переключил на Express попробовал логин, а потом назад на девелопер и всё - зайти нельзя. Только пока весь контейнер не затер.

У меня такое чувство, что нужно еще разрешить общаться с внешним миром MSQLу.

#10 
AlexNek патриот21.04.21 23:42
AlexNek
NEW 21.04.21 23:42 
в ответ AlexNek 21.04.21 23:33

Есть оказывается внутри-контейнерный Sqlcmd и внешний. Так внутренний работает, а внешний на локал хосте нет.

ищем дальше.....

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login timeout expired.

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : TCP Provider: Error code 0x2749.

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..

#11 
MrSanders коренной житель22.04.21 10:41
NEW 22.04.21 10:41 
в ответ AlexNek 21.04.21 23:42

Вангую. Внутри контейнера запустился сервер на 1443 пору. Но никто докеру не сказал открыть этот порт наружу.

#12 
AlexNek патриот22.04.21 10:54
AlexNek
NEW 22.04.21 10:54 
в ответ MrSanders 22.04.21 10:41

мурка прав, должно быть 1433 наружу тоже. Но изменение маппинга ничего не дало.

Везде стоит bridge у networking. Как еще открыть наружу не вижу.

Тем более, после запуска контейнера порт сразу становится виден.


Ну и не делают тут ничего больше

https://www.youtube.com/watch?v=vlv2utQhBgQ&t=16s

#13 
MrSanders коренной житель22.04.21 13:18
NEW 22.04.21 13:18 
в ответ AlexNek 22.04.21 10:54
Везде стоит bridge у networking.

https://docs.docker.com/network/bridge/ это не про то.

#14 
AlexNek патриот22.04.21 14:29
AlexNek
NEW 22.04.21 14:29 
в ответ MrSanders 22.04.21 13:18
это не про то

Не имею понятия. Но я не запускаю контейнер из командной строки и порт маппинг имеется

Эту штуку тоже сделал


sysctl net.ipv4.conf.all.forwarding=1

iptables -P FORWARD ACCEPT


#15