Status do contêiner do Docker Exited (1) Parte 2 (estouro de memória da imagem elasticsearch)

Eu escrevi o primeiro artigo antes. Naquela época, quando carreguei a imagem do MySQL e montei o contêiner do MySQL, havia um estado Exited (1). Pensei que fosse por causa de várias instalações, mas não parece ser o caso agora. Embora tenha sido resolvido sem problemas no primeiro artigo, um pouco de conhecimento não é uma boa atitude do aluno.

 

Quando eu estava prestes a aprender ES recentemente, eu também puxei muitas imagens espelhadas. A primeira puxou a versão 5.1.1, rmi caiu, puxei várias vezes e encontrei a versão 5.1.2.

(A imagem oficial não pode ser extraída diretamente: docker pull elasticsearch5.1 usado. Este comando extrairá a última versão da imagem 5.1, que é a versão 5.1.2, e a versão mais recente parece ser 7.2.0)

 

Depois de carregar a imagem e montar o contêiner, o estado de Exited (1) reapareceu. Passei pelo processo no primeiro artigo e descobri que não poderia resolver o problema. Lamento por enganar os leitores (afinal, também sou um novato).

 

Insira o texto:

Pesquisei muito conteúdo relacionado na Internet e tratarei de algumas situações aqui, pois a situação que ocasionou o estado Saído (1) não é certa, então não me atrevo a me gabar de que desta vez pode resolver todos os problemas dos leitores. Este artigo fornece principalmente aos leitores ideias.

 

Como a depuração múltipla não conseguiu montar o contêiner , encontrei um comando na Internet ( verifique o log de montagem do contêiner , entendo assim):

docker logs elasticsearch_5.1.2

Através deste comando, montei novamente o container, o comando utilizado é (este também é um comando para limitar a memória, mas não sei porque não funcionou):

docker run -d -m 256M --memory-swap 512M -p 9200:9200 -p 9300:9300 --name elasticsearch_5.1.2 docker.io/elasticsearch:5.1.2

Use o comando log para visualizar o registro, o conteúdo é (aproximadamente significa que não há memória suficiente ):

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid1.log
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

Então fui verificar o que estava na memória , comando: docker stats -a (verifique a memória e outras informações ocupadas por todos os contêineres na memória), e saia com Ctrl + C

Em seguida, siga as dicas para encontrar uma das soluções para memória insuficiente na Internet e defina a variável de ambiente (aqui está o comando que posso usar para meu teste pessoal, muitos deles estão errados na Internet):

docker run -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms64M -Xmx256M" --name elasticsearch_5.1.2 docker.io/elasticsearch:5.1.2

Você pode tentar e explicar ao mesmo tempo:

-d: executa em segundo plano

-p: aponta para o número da porta

-e: Definir variáveis ​​de ambiente (parece muito importante). ES_JAVA_OPTS nome da variável, -Xms limite inferior, -Xmx limite superior

Aqui está uma extensão (-m: definir o tamanho da memória), mas acho que não tem efeito depois de usá-la. Não sei por que, por favor, deixe uma mensagem para os leitores que sabem.

Depois de executar este comando, o container é montado com sucesso. Se houver algum problema, deixe uma mensagem e seguirei o CSDN a qualquer momento.

Acho que você gosta

Origin blog.csdn.net/FV8023/article/details/95591542
Recomendado
Clasificación