Docker: доступ к MySql-контейнеру
Запись от Mysterious Light размещена 12.05.2019 в 20:34
Показов 7587
Комментарии 3
|
Вот начал изучать докер. Для начала взял такую задачу: создать два контейнера с mysql и, например, php, и получить доступ через mysql из второго контейнера. Посмотрим, какие могут возникнуть ошибки и как они могут быть устранены. Предполагается, что пользователь MySql сервера root с паролем ps. Директория db в начальный момент пуста или не существует.Структура директории, в которой производятся все манипуляции:
bind-address = 0.0.0.0Проверяем:
Исправляем:
https://stackoverflow.com/ques... sql-server Замечания: 1. В том же вопросе SO предлагается решить проблему доступа строкой bind-address = 0.0.0.0 в my.cnf. Как я показал, сама по себе эта строка в конфиге ни на что не влияет. Таким образом, конфигурационный файл можно было не менять в образе mysql.2. При первом запуске и проведённых манипуляциях директория db создастся и заполнится файлами MySql. При повторном запуске настройки сохранятся:
| |||||||||||||||||||||||||||||||||||||||||||||
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 3
Комментарии
-
Директорию db по хорошему надо размещать на отдельном volume, монтируемом к контейнеру. Потому что при хранении в файловой системе хоста права доступа будут не пойми какие.
Не очевидная проблема, которую никто не упоминает в мануалах:
mysql выступает записью в некоем dns, используемом в сети docker. При наличии несколько таких проектов с одноименными контейнерами ("mysql"), контейнер, обращающийся по этому имени, будет стучатся к первому попавшемуся с таким именем. Если эти одноимённые контейнеры относятся к разным проектам, будет фейл.Code 1 2 3 4 5 6
services: mysql: ... php: depends_on: - mysql
Запись от Rius размещена 13.05.2019 в 06:12
-
Спасибо!
Сообщение от Rius
Я вставил depends_on, чтобы линеаризовать порядок загрузки контейнеров (и снизить энтропию причины ошибок).
Сообщение от Rius
Честно скажу: я понятия не имею, что делает половина параметров, которые есть в docker-compose. Например, DB_HOST и PMA_PORT. Взял чужое решение, потратив два дня, довёл его рабочего состояния. К сожалению, очень мало инструкций по не-хеллоу-ворлдному использованию докера, в которых всё разжевывается подробно для идиотов как я.
Я думал, что при запуске docker-compose он создаёт отдельную bridge-сеть для каждого проекта и контейнеры работают каждая в своей сети. Это не так?
Сообщение от Rius
Запись от Mysterious Light размещена 13.05.2019 в 12:45
-
Запись от Rius размещена 13.05.2019 в 13:31


