[請益] Docker compose 使用 postgres 問題
請問一下
我創建了 postgres 的容器,然後寫了一個 python 的程式去連接這個資料庫(python 的程式一樣在 docker 上)
然後我目前是使用 docker build run 的方式去啟動,但是如果我連資料庫的 IP 填 127.0.0.1 的話會無法連線,如果改成了資料庫容器裡的 IP(這裡是 172.17.0.2) 就可以成功,為什麼阿?
但是當我換成用 docker-compose 執行時,使用 127.0.0.1 跟 172.17.0.2 都失敗,反而使用電腦的IP(192.168.0.102(跑在虛擬機上)),就可以連成功?
請問問題出在哪裡啊? 我找資料找了一整天找不到類似的文章,來這裡問問大神
這是我寫的 Dockerfile 和 docker-compose.yml 內容:
https://pastebin.com/iNC1tFPn
感謝幫忙!!!
--
dbhost 改 db
最簡單的說 網路也是虛擬化出來的 一切和你想的不同
docker compose中name可以當domain用 也就是一樓講的改法
你要瞭解 docker network 的部分 容器的 127.0.0.1 是他
自己 不是 host 然後你用容器的 IP 172.X.X.X 應該是可
以的 你可能要確認一下用 docker-compose 跑起來的容器
IP 是多少 最後 正規的容器連容器的方式是用容器的名稱
當作 domain name 去連
啊 對了 如果是用 docker-compose 的話 domain name 就
是服務的名稱 以你的例子就是 auth 跟 db
看你檔案,應該是連結5432
沒事搞錯了
第二篇比較清楚
你第一種的docket run想要用127.0.0.1:5432連線的話 參
數要加--network host把network接到host上應該就可以了
關鍵字用docker compose network去搜會找到很多說明的
文章看完你就會懂了
不懂再站內
感謝各位,我先去了解了解
阿一樓說的改成db指的是 Dockerfile 裡面 ENV 的 DBHOST嗎
用dc時, 在auth裡面db這個hostname會被resolve到db containe
r. 所以你直接把py裡面的hostname改成db就可以了
另外用dc時, 因為你把5432 map到db container的5432, 所以你
也可以用host.docker.internal:5432來連.
對的 ENV DBHOST db
試試overlay?
去把cgroup弄懂
你有寫 container name 那連結方式用該 name 就好啦
除非你綁死不然 container restart 的時候 IP 是有可能變
27
[心得] 手機跑dockerWe need to go deeper... 基本上,Android手機沒辦法直接跑docker,因為kernel根本就不支援。雖然如此,我們還 有QEMU虛擬機呀,可惜KVM也沒辦法用。 網誌好讀版: 架構:Termux模擬器建立QEMU虛擬機,虛擬機裡面安裝Docker,然後再通訊埠轉發。8
Re: [請益] 有關虛擬化選擇我會建議vmware,商業的東西,還是找大家都在用的,發生問題也比較好解決,或是找業 務來談談。 另外你的需求建議先使用虛擬機就好,看起來你們應該沒有很多人力可以維護,用虛擬機 跟原本用實體機的操作差不多, 碰到的阻力也會比較少。8
[請益] QA轉RD請益請益 小弟非本科學士畢業目前在一家小公司擔任QA已經一年多了,發現自己對QA好像不是那麼 的喜歡,反而喜歡RD的工作也私底下寫了一些小工具當sideproject例如利用aws api做的 自動部署來跑幫朋友寫的批量google登入(目前好像被google鎖了)之類,也有寫個簡單的 restful api5
[心得] 容器化與Box86執行exe心得: 也許手機未來能執行Steam商店,看是要用Box86硬跑x86 Linux版的Steam,還是隔一層Wine 跑Win32版本的Steam,至少樹莓派台灣已有成功案例。 以內核支援docker的手機,用Termux執行32位元的Ubuntu容器,接著編譯Box86(x86指令轉A4
[請益] Docker Toolbox連接MySQL請問,我在windows一般的環境下透過MySQL Workbench建了新的table 並且把MySQL存放的路徑修改到了E:\mydata (輸入show global variables like "%datadir%";可以確定修改成功) 在啟用docker container時 (因為在測試的階段,為了簡化問題,試著不透過compose)1X
[心得] Docker Debug 挑戰題 - 網頁跑板了!?Docker Debug 挑戰題 - 網頁跑板了!? 小容器 我要進來囉 封面圖: iT邦幫忙圖文好讀版: 軟體版大家好,這邊根據實際工作經驗,特別設計了一道 Docker Debug 挑戰題目。4
[心得] 自動更新執行中的 Docker 容器解決方案部落格: 看影片: 現在大家在部署服務肯定都已經容器化,而如何有效管理及升級容器不影響現有的服務, 這就是一個重要的議題,然而在 CI/CD 的流程內,肯定有兩個步驟是必須的,第一就是 將環境打包成 Docker Image 並上傳到公司內私有的 Docker Registry,以及上傳完畢後3
[心得] 2020-3-3 每日新聞#每日新聞 # 2020-3-3 每日新聞 # FB: # docker-java-api Lightweight Java Docker client1
[心得] Docker Debug 挑戰題 - 網頁跑板了!?Docker Debug 挑戰題 - 網頁跑板了!? 小容器 我要進來囉 封面圖: iT邦幫忙文章好圖版: 大家好,這邊根據實際工作經驗,特別設計了一道 Docker Debug 挑戰題目。 初始環境有所設置錯誤,試試看妳能否找出 Dockerfile 哪邊需要修改?1
Re: [請益] docker 在mac上的網路設定簡單說一下你的問題成因 mac docker環境透過在mac系統之內建立虛擬機器產生,本身網路不是直接對外 但是linux docker是linux內建的隔離機制產生,docker與linux都是直接對外 所以今天你指定了127.0.0.1, 在linux是同時指定docker與linux, 但在mac只是指定mac