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