web-dev-qa-db-ja.com

ローカルデータベースと連携するようにDockerコンテナーをセットアップする

ローカルデータベースで動作するようにDockerコンテナーをセットアップしようとしています。

画像はこれです https://hub.docker.com/r/tuxgasy/dolibarr/ であり、mariadbコンテナも作成して、それにリンクすることをお勧めします。

ディストリビューションのメインリポジトリからインストールされた、メインシステムに既にあるmariadbデータベースを代わりに使用するようにDolibarrコンテナーを構成したいと思います。

動作しているDockerアプリケーションをセットアップしようとしたのはこれが初めてであり、私はデータベースの保守の専門家ではないため、少し迷っています。

これどうやってするの?説明の広告はできるだけ明確かつ詳細にしてください。

私のシステムは完全に更新されたopenSUSE Tumbleweedです

10
Sekhemty

3つの方法があります。

  1. --net = Hostオプションを使用します。このネットワークモードは基本的に、コンテナーがlocalhostに直接アクセスでき、localhost:3306にアクセスできることを意味します。ここにコマンドがあります

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

    次に、localhost:3306を使用してmariadbに接続します

  2. Mariadbソケットをdockerコンテナーにマウントし、ソケットを介してmariadbに接続します。たとえば、ソケットの場所を/var/run/mysqld/mysqld.sockに構成すると、マウントして接続ポイントとして使用できます。

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

    次に、アプリからソケット/mariadb_socket/mysqld.sockを介してmariadbに接続します

  3. DockerホストのIPを使用します。まず、DockerネットワークのホストIPアドレスを取得します(Linuxではip addr showと入力して、docker0 ipを探します)。これは通常172.17.0.1のようなものです(マイレージは異なる場合があります)。次に、そのIPアドレスを使用して、たとえば172.17.0.1:3306などのmariadbに接続できます。

注: ...は、すでに使用している可能性があるその他のオプションを意味します

19
Clive Makamara

私はそれを正確に行うためのDockerコンテナを作成しました https://github.com/qoomon/docker-Host

次に、単にコンテナー名dnsを使用して、コンテナー内からホストシステムにアクセスできます。カール http:// dockerhost:92

2
qoomon