記一次神奇的docker-compose訪問網路不通問題

語言: CN / TW / HK

最近要搭建一個單機的es系統用來做測試,本以為是一個非常簡單的事情,畢竟之前就已經使用docker搭建過es,實在是非常簡單的事情。

直接找出之前編寫的docker-compose 檔案

執行docker-compose 命令上線,成功執行,也沒報錯,按說應該正常可以訪問了,這個時候神奇的一抹發生了,我訪問 ip:9400, 居然沒任何響應?

這下將我搞蒙了,趕緊檢視相關的日誌,沒有任何報錯資訊,然後又檢查網路,檢查許可權,奇怪了,沒有任何有價值的資訊。而這個docker-compose檔案是之前執行過的,沒有任何問題,我又從其他的容器中對這個容器進行ping操作,可以ping通,但就是沒有響應。

再次檢查配置檔案,

還是沒發現問題,折騰了一下午,還是沒頭緒,突發奇想,用最原始的方式執行。

這下,訪問居然正常了!!!!!!

這下重點百度這一塊的資訊,找到相關的資訊,說是資料包轉發的問題

按照這位哥們的方案進行處理,還是沒效果,還有說防火牆問題的,一一排除掉。依然沒解決,只能docker run 方式開啟,docekr-compose就是不行。

搞到這個時候,基本可以確定是docker-compose 的問題,我又在docker run 方式裡面加入網路,還是不行。

但忽然靈機一動,是不是埠的問題,我將 9400 埠替換成 es預設的9200 埠,再次上線,居然OK了

為什麼換了埠就行了,檢視是否端口占用,沒有端口占用,最奇怪的是,之前這個docker-compose是經過驗證的。但終究,現在docker-compose 可以運行了。其他的容器也能連線上它了,猜測原因,可能es的問題,也可能docker-compose 的網路問題。

對比了下之前和現在的docker, docker ps 命令,之前是

的形式,現在是下面這種

這 ::: 三個冒號表示什麼意思?

學海無涯,學無止境啊!

分享到: