web-dev-qa-db-fra.com

Configurer un conteneur Docker pour qu'il fonctionne avec une base de données locale

J'essaie de configurer un conteneur Docker pour qu'il fonctionne avec une base de données locale.

L'image est celle-ci https://hub.docker.com/r/tuxgasy/dolibarr/ et suggère de créer également un conteneur mariadb, et le lier à cela.

J'aimerais configurer le conteneur Dolibarr pour qu'il utilise plutôt la base de données mariadb que j'ai déjà sur mon système principal et qui a été installée à partir du référentiel principal de ma distribution.

C'est la première fois que j'essaye de configurer une application Docker fonctionnelle, et je ne suis pas un expert en maintenance de base de données, je suis donc un peu perdu.

Comment puis-je faire ceci? Veuillez garder les instructions aussi claires et détaillées que possible.

Mon système est un OpenSUSE Tumbleweed entièrement mis à jour.

7
Sekhemty

Il y a trois façons:

  1. Utilisez l'option --net = Host. Ce mode réseau signifie essentiellement que le conteneur a un accès direct à localhost et que vous pouvez maintenant accéder à localhost: 3306. Voici la commande

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

    Puis connectez-vous à mariadb avec localhost:3306

  2. Montez la prise mariadb sur le conteneur de docker et connectez-vous à mariadb via une prise. Par exemple, si vous configurez l'emplacement du socket sur /var/run/mysqld/mysqld.sock, vous pouvez le monter et l'utiliser comme point de connexion.

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

    Puis connectez-vous à mariadb via le socket /mariadb_socket/mysqld.sock depuis votre application

  3. Utilisez l'adresse IP de l'hôte du menu fixe. Commencez par obtenir l'adresse IP de l'hôte sur le réseau d'accueil (dans linux, tapez ip addr show et recherchez le docker0 ip ). C'est généralement quelque chose comme 172.17.0.1 (votre kilométrage peut varier). Ensuite, vous devriez pouvoir utiliser cette adresse IP pour vous connecter à mariadb, par exemple 172.17.0.1:3306

REMARQUE: ... désigne toute autre option que vous utilisez peut-être déjà.

11
Clive Makamara

J'ai créé un conteneur Docker pour faire exactement cela https://github.com/qoomon/docker-Host

Vous pouvez ensuite simplement utiliser le nom de conteneur dns pour accéder au système hôte depuis un conteneur, par exemple. curl http: // dockerhost: 9200

2
qoomon