Для того чтобы получить доступ к MySQL-контейнеру в Docker и со стороны других контейнеров, а также со стороны хостовой машины, следует применить несколько шагов.
1. Создайте Docker-контейнер для MySQL, например, используя следующую команду:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=password -d mysql:latest
2. Убедитесь, что контейнер MySQL работает, выполнив команду:
docker ps
3. Создайте другой контейнер, который будет использовать связь с контейнером MySQL:
docker run --name other-container --link mysql-container:mysql -d your-image:latest
Здесь other-container
- это имя контейнера, mysql-container
- имя контейнера MySQL, mysql
- это имя, по которому контейнер MySQL будет доступен из другого контейнера.
4. Внутри контейнера other-container
вы можете использовать имя хоста mysql
, чтобы получить доступ к MySQL-серверу. Например, при использовании сценария на Python вы можете использовать следующий код:
import mysql.connector db = mysql.connector.connect( host="mysql", user="root", password="password" )
5. Чтобы получить доступ к MySQL из хостовой машины, вам нужно использовать порты, которые MySQL-контейнер экспонирует. Так, при создании контейнера MySQL, чтобы пробросить порт 3306 (стандартный порт MySQL), можно использовать следующую команду:
docker run --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest
Теперь, чтобы получить доступ к MySQL из хостовой машины, вы можете использовать IP-адрес хостовой машины и порт 3306, например, запустив программу, как MySQL Workbench, и указав IP-адрес хостовой машины и порт 3306.
Обратите внимание, что вам также потребуется установить необходимый клиент MySQL на хостовую машину для доступа к базе данных MySQL.
В результате этих шагов вы сможете получить доступ к MySQL-контейнеру из других контейнеров и хостовой машины одновременно.