docker 啓動 elasticsearch鏡像,掛載目錄後報錯問題

從docker hub下載了一個es的鏡像,版本爲6.4.2,詳細信息如下:

比較重要的就是這兩條,第一個是工作目錄,掛載目錄也需要和這裏對應;第二個是啓動命令,這裏是指定了一個預先寫好的啓動腳本。所以我啓動了一個空容器去查看了下容器內的情況:

容器內部目錄結構如上圖,data是用來存放數據,logs用來存放日誌。

接着查看下啓動腳本 

/usr/local/bin/docker-entrypoint.sh

 

前半部分我也是看的一知半解,不過真正和掛載目錄相關的是最後這部分,這裏處理了掛載目錄後的操作,大致意思是:

如果是root用戶(docker啓動容器,默認是以root用戶身份),並且 TAKE_FILE_OWNERSHIP 變量存在,則將/usr/share/elasticsearch/{data,logs},這兩個目錄都改變爲1000用戶所屬(這裏也可以看到最終存儲數據的路徑爲data,所以掛載時應該掛載到data下)。

id爲1000的用戶:

正是elasticsearch用戶,所以如果不掛載任何目錄直接啓動容器即可,如果掛載,那麼就添加一個變量,任意賦值,es可以正常啓動。

docker run -itd -v /root/es-data/:/usr/share/elasticsearch/data -e TAKE_FILE_OWNERSHIP=111 -p 9200:9200 --name es elasticsearch:6.4.2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章