В настоящее время я нахожусь в процессе изучения Docker (использую его в Windows и Linux), и есть одна вещь, которую я не могу понять, и я думаю, что это лучше объяснить на примере.
Я запускаю открытые порты контейнера MySQL и затем подключаюсь к нему через клиент MySQL, такой как MySQL Workbench. В Linux / Ubuntu я могу подключиться к БД, работающей внутри контейнера, по ее IP-адресу, который я получаю, выполнив:
docker inspect CONTAINER_NAME
Это имеет смысл для меня, именно так я бы подключился к базе данных, работающей на сервере.
Однако в Windows этот подход не работает. Я на самом деле должен подключиться, localhostа не IP-адрес контейнера. Я понимаю, что это как-то связано с тем, что в Windows контейнеры работают внутри виртуальной машины Linux, но в этом случае я должен использовать IP-адрес виртуальной машины для подключения к ней.
Может ли кто-нибудь объяснить мне, почему это работает так, как работает? Я изо всех сил пытаюсь понять это (я все еще младший разработчик), и я бы лучше понял, как это работает, чем просто запоминать команды / IP-адреса для разных ОС.
localhost:3306подключается к[CONTAINER_NAME]:3306. Но MySQL по умолчанию нигде не привязывается к0.0.0.0viabind-address: 0.0.0.0inmy.cnfв контейнере. Или пользовательские разрешения для MySQL подключеныlocalhostвместо подстановочного знака%. Каково именно ваше сообщение об ошибке?