docker容器內無法與本機redis、mongo通訊解決方案
我們平時因為部署伺服器會用到docker服務,而啟動docker容器後會出現無法與本機或者其他伺服器的mysql、redis、mongo進行連線。主要原因有如下兩種:
1. 需要關閉防火牆:
CentOS7檢視和關閉防火牆 檢視防火牆狀態 firewall-cmd --state 停止firewall systemctl stop firewalld.service
禁止firewall開機啟動 systemctl disable firewalld.service iptables -F
執行完如上操作,再次連線,就會出現能連線情況,防火牆的原因導致。
2. docker容器啟動後也會擁有一個預設ip。
docker在啟動成功後會有一個自己的ip,這個ip和本機的ip不是同一個ip,所以在寫程式碼的時候,一定要注意localhost、127.0.0.1這樣的命名,最好寫一個指定的ip。為了安全起見,小編推薦使用內網ip,這樣也會避免來自外網的網路攻擊行為。