問題描述:
- 同一個華爲雲宿主機上, 兩個docker容器,分別是django和mysql, django通過公網IP訪問mysql,運行正常.
- 電腦本地 django容器 使用 內部IP 訪問 本地服務器上 的docker mysql容器, 運行正常.
- 本地服務器 虛擬機上,django使用內部IP訪問mysql,不成功,報錯如圖.
解決過程:
感謝這位大神, 重點參考文章
- 首先,django 容器在華爲雲是完全可以跑起來的, 說明代碼沒有問題
- 其次, mysql 數據正常
- 使用命令
docker inspect mysql
檢查 mysql
- 從圖中可以看到
Getway
和IPAddress
, 優先使用IP地址訪問, 訪問不成功, - 切換爲Getway, 訪問成功,
- 看過參考文章後, 測試結果
- 接受訪問的docker 提供的是mysql服務,
- 測試1: 將
django.settings.py
中DATABASES
中的HOST
,改爲:172.17.0.2
PORT
改爲:3306
, 訪問成功 - 測試2: 將
django.settings.py
中DATABASES
中的HOST
,改爲:172.17.0.1
PORT
改爲:3333
, (此端口是中docker run -p 3333:3306 -name mysql
), 訪問成功