Docker容器的程序連接宿主機的MySQL全過程
Docker容器的程序連接宿主機的MySQL
docker里面的代碼生成的數(shù)據(jù)需要寫入到宿主機的Mysql服務(wù)器上,想要用本地的數(shù)據(jù)庫測試自己的代碼正確性,項目程序安裝在docker容器中,于是必定要在docker容器里訪問到本地的數(shù)據(jù)庫。
(1)在docker容器里localhost并不是指宿主機的localhost
因此不能在容器中通過localhost:3306訪問到宿主機的mysql,也不可以通過127.0.0.1訪問。
(2)docker在運行時就建立了虛擬網(wǎng)卡
并命名為docker0,可以在宿主機上運行ifconfig看到它,這就是宿主機建立的網(wǎng)橋,用于與各個容器之間通信。
[root@VM-8-15-centos ~]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:53ff:fed0:4c11 prefixlen 64 scopeid 0x20<link>
ether 02:42:53:d0:4c:11 txqueuelen 0 (Ethernet)
RX packets 4489 bytes 6944799 (6.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3379 bytes 999348 (975.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig 為什么看不到 docker0
在最近的 Docker 版本中,docker0 網(wǎng)絡(luò)接口已經(jīng)被棄用,因此您在使用最新版本的 Docker 時可能看不到該接口。
相反,Docker 現(xiàn)在使用名為 bridge 的網(wǎng)絡(luò)驅(qū)動程序來管理 Docker 容器的網(wǎng)絡(luò)連接。您可以使用 ip addr 命令來查看當(dāng)前正在運行的 Docker 網(wǎng)絡(luò):
$ ip addr show docker0
(3)宿主機在與容器同一局域網(wǎng)的IP地址
一般是docker0對應(yīng)的IP地址段的首個地址(如172.17.0.1),因此,可以在容器里通過172.17.0.1:3306訪問到宿主機的mysql服務(wù)器。
mysql服務(wù)器默認(rèn)的設(shè)置為允許127.0.0.1段的ip地址訪問
如果用172.17.0.1:3306仍然無法訪問到宿主機的話,需要設(shè)置一下mysql的訪問權(quán)限:
如果用的是寶塔面板,可以給nacos這個數(shù)據(jù)庫設(shè)置權(quán)限為所有人
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678' WITH GRANT OPTION; mysql>flush privileges; // 其中各字符的含義: // *.* 對任意數(shù)據(jù)庫任意表有效 // "root" "12345678" 是數(shù)據(jù)庫用戶名和密碼 // '%' 允許訪問數(shù)據(jù)庫的IP地址,%意思是任意IP,也可以指定IP // flush privileges 刷新權(quán)限信息
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Docker結(jié)合Canal實現(xiàn)MySQL實時增量數(shù)據(jù)傳輸功能
這篇文章主要介紹了基于Docker結(jié)合Canal實現(xiàn)MySQL實時增量數(shù)據(jù)傳輸功能,本文給圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
使用Docker部署的基于binlog實現(xiàn)Mysql8的操作方法
MySQL 基于?Binlog?的主從復(fù)制(Master-Slave Replication)是 MySQL 數(shù)據(jù)庫中實現(xiàn)數(shù)據(jù)復(fù)制的一種機制,這篇文章主要介紹了使用Docker部署的基于binlog實現(xiàn)Mysql8,需要的朋友可以參考下2025-01-01
利用docker搭建web服務(wù)環(huán)境的方法步驟
這篇文章主要給大家介紹了關(guān)于利用docker搭建web服務(wù)環(huán)境的方法步驟,文中通過是示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。2017-09-09
ElasticSearch+Kibana通過Docker部署到Linux服務(wù)器中操作方法
本文介紹了Elasticsearch的基本概念,包括文檔和字段、索引和映射,還詳細(xì)描述了如何通過Docker在Linux服務(wù)器上安裝Elasticsearch、Kibana和IK分詞器,并驗證安裝,感興趣的朋友一起看看吧2025-02-02
docker在Centos上做DNS服務(wù)器的配置全過程
這篇文章主要介紹了docker在Centos上做DNS服務(wù)器的配置全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-06-06

