Я работаю с WebAPI в ядре.net в Docker. Я хочу развернуть этот API на экземпляре AWS EC2 с локальной базой данных mysql, работающей с другим веб-приложением.
Как я могу достичь этого Mysql изнутри докера?
Локально я могу сделать это, используя мой частный ip addres в
=> optionsBuilder.UseMySql(@"Server=$my_local_ip;database=db_name;uid=user;pwd=pass;");
Ho, чтобы определить, какой из $my_local_ip
следует использовать для подключения к БД?
Но при использовании частного ip на EC2 я получил ошибку при отправке запроса, что он не может подключиться к любому хосту MYSQL.
Для сервера MySQL вам обычно нужно указать порт для подключения, так как каждый экземпляр на одном сервере использует другой порт.
Используйте --network=host
флаг при запуске API контейнера Web и использовать localhost
в вас строке подключения в качестве имени хоста. Это позволит контейнеру Docker получить доступ к сети хоста. Следовательно, вы можете получить доступ к базе данных MySQL из контейнера.
Примечание. Это небезопасно для работы с загруженными контейнерными рабочими нагрузками. Нажмите сюда, чтобы узнать больше