docker之Elasticsearch鏡像安裝及運行、整合Zipkin

鏡像官網:https://hub.docker.com/

 

 

拉取最新版本的Elasticsearch服務(具體指定版本,可以去上面提供的官網找到):

docker pull elasticsearch

這時候會出一個報錯問題(意思就是找不到這個最新版本):

[root@VM_0_13_centos /]# docker pull elasticsearch
Using default tag: latest
Error response from daemon: manifest for elasticsearch:latest not found: manifest unknown: manifest unknown

既然這樣,我就指定一個版本唄,指定的也是2020年6月份的最高版本:

[root@VM_0_13_centos /]# docker pull elasticsearch:7.8.0

啓動Elasticsearch: 

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.8.0

啓動之後,確實啓動成功了,但是幾秒鐘後,會自動停止,查看日誌:

docker logs 2adc715a3a9a   	# 查看某個容器的日誌

結果(大概意思就是內存不夠):

[root@VM_0_13_centos /]# docker logs 2adc715a3a9a
Exception in thread "main" java.lang.RuntimeException: starting java failed with [1]
output:
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# logs/hs_err_pid132.log
error:
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' (errno=12)
        at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:126)
        at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)
        at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:137)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)
Exception in thread "main" java.lang.RuntimeException: starting java failed with [1]
output:
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# logs/hs_err_pid132.log
error:
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' (errno=12)
        at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:126)
        at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)
        at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:137)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)
[root@VM_0_13_centos /]# 

 這時候需要先找出開始運行的容器:

docker ps -a

然後將之前啓動的容器刪除(爲每次啓動出問題的時候,最好將上面 和 這步執行一次): 

docker rm 2adc715a3a9a

解決內存溢出的啓動命令:啓動命令加一個:        -e "ES_JAVA_OPTS=-Xms512m -Xmx512m"       也可以再大一點。

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" elasticsearch:7.8.0

啓動完畢後訪問: http://當前ip地址:9200/  

 


如果啓動依然不成功,畢竟測試服務器的內存是很小的:

最終版解決方案:

執行:

find / -name jvm.options

執行:(後面的文件地址就是上面查的文件地址,一定要找目錄有elasticsearch的目錄地址)

vim /var/lib/docker/overlay2/08455b2d4591981dc85d3c6b737d84a7731fecccf903f044ac3ebaaad81f2b3d/diff/usr/share/elasticsearch/config/jvm.options

修改配置:(然後wq命令保存即可)

#-Xms1g   # 註釋掉
#-Xmx1g   # 註釋掉
-Xms512m   #修改   一定要比當前服務器剩餘內存空間小
-Xmx512m   # 修改  一定要比當前服務器剩餘內存空間小

 再執行  elasticsearch啓動命令:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.8.0

然後等2分鐘,再訪問  http://當前ip地址:9200/   訪問成功出現json數據就好了。


 

 

docker run -it -d --restart=always -e KAFKA_BOOTSTRAP_SERVERS=10.0.1.66:9092 -e STORAGE_TYPE=elasticsearch:7.8.0 -e ES_HOSTS=http://10.0.1.66:9200 -p 9411:9411 openzipkin/zipkin:2.12.6



docker run -d --name zipkin_mq_es -p 9411:9411 -e RABBIT_ADDRESSES=172.16.57.103:5673 -e RABBIT_USER=admin -e RABBIT_PASSWORD=admin -e STORAGE_TYPE=elasticsearch:7.8.0 -e ES_HOSTS=http://119.27.184.220:9200 openzipkin/zipkin

 

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