最近要搭建一個單機的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 命令,之前是
的形式,現在是下面這種
這 ::: 三個冒號表示什麼意思?
學海無涯,學無止境啊!