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.
Il y a trois façons:
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
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
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à.
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