docker容器訪問宿主機的MySQL操作

2022-09-24 10:24:10 字數 1020 閱讀 4596

有乙個flask專案提供介面,使用docker容器構建並且執行,mysql在宿主機執行,需要在容器中可以讓flask連線上宿主機的mysql

使用ifconfig命令可以看到,有乙個docker0和eth0,在docker容器中可以通過eth0的ip位址加上埠號(3306)這樣就可以連線上宿主機的mysql了;另外,nginx可以通過docker0的ip地程式設計客棧址加上構建容器時指定的埠號進行訪問容器。

補充:docker的mysql容器執行正常,但是宿主機卻連不上資料庫,解決方法來啦

docker執行mysql容器正常,宿主機n**icat卻無法連線

我在docker上面執行docker ps顯示如下:

說明我的mysql是正常的,但是我用sqlyog和n**icat都無法連線我的資料庫,後來才發現問題所在,之前我在建立mysql容器(docker run --name mysql -p 3306:3306 -e mysql_root_passwordwww.cppcns.com=root -d mysql:5.6.35)時候雖然成功,但是有一句提示我疏忽了:

這裡提示網路不可用,所以宿主機無法連線資料庫

解決辦法:現在輸入這個命令vim /usr/lib/sysctl.d/00-system.conf(vim不行的話你就輸入vi):

馬上會出現這個:

在末尾新增這句: net.ipv4.ip_forward=1 (新增的指令是這樣:先按i 鍵,接著你就可以操作了)然後儲存退出(寫好了net.ipv4.ip_forward=1這個命令按esc鍵,接著ctrl+: 最後輸入wq! 你就儲存退出了),你再重啟network服務: systemctl restart network 先把剛才那個mysql的容器停止docker stop docker ,再把容器刪了docker rm mysql 如下:

現在你可以重新建立mys程式設計客棧ql的容器了,看下效果:

是不是沒有那個網路不可用的警告了;我用sqlyog連線的,用n**icat連也一樣:

本文標題: docker容器訪問宿主機的mysql操作

本文位址:

docker宿主機訪問docker容器服務失敗

原因 因為docker的虛擬ip網段是172.17.與區域網的ip網段172.17衝突了,所以有兩種方式 解決方法 一 修改docker網絡卡資訊,將網段改為與區域網不同的即可 linux修改方法 第一步 刪除原有配置 sudo service docker stop sudo ip link se...

Docker容器訪問宿主機網路

業務請求量小的時候,我們會把一些工程部署到同一臺機器上。這些工程之間也會相互訪問。如果是http的介面,我們最方便的是使用localhost帶地本機的ip。不過結合docker容器後出現了問題。docker容器中localhost表示容器的ip位址。不是宿主機ip。其實docker容器執行的時候有h...

docker 容器訪問宿主機的解決方式

基於本地docker的自研及使用需要,希望docker容器的服務能連線到宿主機提供的服務。網路上查閱了大量的資料,基本的解決辦法是通過手動查閱ip的方式進行,但docker宿主機的ip是會動態改變的,並不能保證永久不變。因此此舉是行不通。使用 net host 的網路模式。但實踐,發現win環境下,...