質問: ローカルデータベースと連携するようにdockerコンテナーをセットアップする ローカルデータベースで動作するようにdockerコンテナーをセットアップしようとしています。画像はこれです https://hub.docker.com/r/tuxgasy/dolibarr/ であり、mariadbコンテナも作成して、それにリンクすることをお勧めします。ディストリビューションのメインリポジトリからインストールされた、メインシステムに既にあるmariadbデータベースを代わりに使用するようにdolibarrコンテナーを構成したいと思います。動作しているdockerアプリケーションをセットアップしようとしたのはこれが初めてであり、私はデータベースの保守の専門家ではないため、少し迷っています。これどうやってするの?説明の広告はできるだけ明確かつ詳細にしてください。私のシステムは完全に更新されたopensuse tumbleweedです
回答: 3つの方法があります。 --net = hostオプションを使用します。このネットワークモードは基本的に、コンテナーがlocalhostに直接アクセスでき、localhost:3306にアクセスできることを意味します。ここにコマンドがあります docker run --net=host ... tuxgasy/dolibarr 次に、localhost:3306を使用してmariadbに接続します mariadbソケットをdockerコンテナーにマウントし、ソケットを介してmariadbに接続します。たとえば、ソケットの場所を/var/run/mysqld/mysqld.sockに構成すると、マウントして接続ポイントとして使用できます。 docker run -v /var/run/mysqld:/mariadb_socket ... tuxgasy/dolibarr 次に、アプリからソケット/mariadb_socket/mysqld.sockを介してmariadbに接続します dockerホストのipを使用します。まず、dockerネットワークのホストipアドレスを取得します(linuxではip addr showと入力して、docker0 ipを探します)。これは通常172.17.0.1のようなものです(マイレージは異なる場合があります)。次に、そのipアドレスを使用して、たとえば172.17.0.1:3306などのmariadbに接続できます。 注: ...は、すでに使用している可能性があるその他のオプションを意味します