Настройка контейнера Docker для работы с локальной базой данных

4302
Sekhemty

Я пытаюсь настроить контейнер Docker для работы с локальной базой данных.

Это изображение https://hub.docker.com/r/tuxgasy/dolibarr/, и оно также предлагает создать mariadbконтейнер и связать его с этим.

Я хотел бы настроить контейнер Dolibarr на использование mariadbбазы данных, которая у меня уже есть в моей основной системе, которая была установлена ​​из основного репозитория моего дистрибутива.

Это первый раз, когда я пытаюсь настроить работающее приложение Docker, и я не настолько опытен в обслуживании базы данных, поэтому я немного растерялся.

Как я могу это сделать? Пожалуйста, держите инструкции и объявления четкими и подробными, насколько это возможно.

Моя система - полностью обновленный openSUSE Tumbleweed.

3

1 ответ на вопрос

4
Clive Makamara

Есть три способа:

  1. Используйте параметр --net = host. Этот сетевой режим означает, что у контейнера есть прямой доступ к localhost, и теперь вы можете получить доступ к localhost: 3306. Вот команда

    docker run --net=host ... tuxgasy/dolibarr

    Затем подключитесь к mariadb с помощью localhost:3306

  2. Установите гнездо mariadb в док-контейнер и подключите к гнезду mariadb через гнездо. Например, если вы сконфигурируете расположение сокета как /var/run/mysqld/mysqld.sock, вы можете подключить его и использовать в качестве точки подключения.

    docker run -v /var/run/mysqld:/mariadb_socket ... tuxgasy/dolibarr

    Затем подключитесь к mariadb через сокет /mariadb_socket/mysqld.sockиз вашего приложения

  3. Используйте IP-адрес хоста докера. Сначала получите IP-адрес хоста в сети Docker (в типе Linux ip addr showи найдите IP-адрес docker0 ). Обычно это что-то вроде 172.17.0.1 (ваш пробег может отличаться). Тогда вы сможете использовать этот IP-адрес для подключения к mariadb, например172.17.0.1:3306

ПРИМЕЧАНИЕ: ... означает любые другие опции, которые вы уже используете

Похожие вопросы