我正在嘗試設定 Docker 容器來使用本機資料庫。
圖片是這個https://hub.docker.com/r/tuxgasy/dolibarr/它建議也創建一個mariadb
容器,並將其連結到該容器。
我想配置 Dolibarr 容器來使用mariadb
我的主系統上已有的資料庫,該資料庫是從我的發行版的主儲存庫安裝的。
這是我第一次嘗試設定可用的 Docker 應用程序,而且我不是資料庫維護方面的專家,所以我有點迷失。
我怎樣才能做到這一點?請盡可能保持說明廣告清晰詳細。
我的系統是完全更新的 openSUSE Tumbleweed。
答案1
有以下三種方式:
使用 --net=host 選項。這種網路模式本質上意味著容器可以直接存取 localhost,您現在可以存取 localhost:3306。這是命令
docker run --net=host ... tuxgasy/dolibarr
然後連接到 mariadb
localhost:3306
將 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 位址連接到 mariadb 例如172.17.0.1:3306
筆記:....意味著您可能已經在使用的任何其他選項
答案2
答案3
我創建了一個 docker 容器來做到這一點https://github.com/qoomon/docker-host
然後,您可以簡單地使用容器名稱 dns 從容器內部存取主機系統,例如curlhttp://docker主機:9200
答案4
請記住,qoomon/docker-host 並不比其他方法更好。您必須在 docker 主機上設定應用程式以綁定並偵聽 docker 橋,然後才能存取它。在我看來,qoomon/docker-host只是在網路封包上增加了額外的層,這並沒有提供真正的優勢
這是人們似乎錯過的 qoomon/docker-host 的自述文件副本。 「在Linux 系統上,如果您想透過docker-host 容器存取主機應用程序,除了localhost(127.0.0.1) 之外,還必須將主機應用程式綁定到橋接網路網關。使用下列docker 命令取得橋接網路網關IP 位址”