Подключение к контейнеру MySQL из другого контейнера
Вы настроили Docker-контейнер, на котором работает MySQL, и открыли порт 3306, но как это сделать? вы получаете доступ к этой базе данных из другого контейнера?
Используя IP Адрес
Первоначально вы пытались подключиться, используя IP-адрес контейнера MySQL (172.17.0.2). Хотя это работает, это не идеально, поскольку IP-адреса могут меняться.
Пользовательские сети
Лучшим подходом является использование определяемых пользователем сетей для подключения контейнеров. Вы можете создать сеть и подключить к ней контейнеры MySQL и PHP.
docker network create my_network
Связывание контейнеров
Запустите оба контейнера на той же сети, указав имя сети с помощью флага --network:
docker run -d --name php_container --network my_network my_php_image docker run -d --name mysql_container --network my_network my_mysql_image
Внутри контейнеров в этой сети вы можете разрешать имена контейнеров и подключаться, используя имя хоста. Например, из PHP-контейнера вы можете подключиться к MySQL, используя:
$mysqli = new mysqli("mysql_container", "mattia", "prova", "prova");
Заключение
Пользовательские сети предоставляют более надежный и гибкий способ подключения контейнеров в Docker. Использование имен контейнеров в качестве имен хостов упрощает доступ и устраняет необходимость полагаться на IP-адреса.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3