Elasticsearch is een open-source en beroemde analytische zoekmachine en wordt vaak gebruikt op het gebied van AI en machine learning. Het slaat meestal ongestructureerde, semi-gestructureerde en gestructureerde gegevens op. Veel gebruikers moeten Elasticsearch in Docker-containers installeren en gebruiken om het in geïsoleerde omgevingen uit te voeren.
Tijdens het uitvoeren van Elasticsearch in een op Linux gebaseerde Docker-container kunnen gebruikers echter worden geconfronteerd met de ' Elasticsearch is niet normaal afgesloten ” fout vanwege een onbekende reden en stel voor dat u de “ docker-cluster.log ' bestand.
Dit artikel zal de methode demonstreren voor het oplossen van de ' Elasticsearch is niet normaal afgesloten 'fout tijdens het uitvoeren van de Elasticsearch-container in Docker.
Hoe op te lossen 'Elasticsearch is niet normaal afgesloten' Fout tijdens het uitvoeren van Elasticsearch Docker Container?
Soms werd de Elasticsearch-container niet normaal uitgevoerd omdat deze in een Linux-container werd uitgevoerd en omdat de virtuele geheugenlimiet standaard te laag is. Dit kan ertoe leiden dat de container niet correct wordt uitgevoerd en de foutmelding ' Elasticsearch is niet normaal afgesloten ” zoals hieronder weergegeven:
Om de genoemde problemen op te lossen, kan de gebruiker het aantal mmaps van het virtuele geheugen voor de Linux-container verhogen met behulp van de volgende stappen.
Stap 1: Start de Docker Desktop-toepassing met WSL
Start eerst de Docker Desktop met WSL. Het stelt ons in staat om Linux-containers op Windows uit te voeren en te beheren:
wsl -D docker-desktop
Stap 2: vergroot het virtuele geheugen
Voer vervolgens de onderstaande opdracht uit om de virtuele geheugenlimiet voor Linux-containers te verhogen:
systeem -In vm.max_map_count= 262144
Voer daarna de opdracht 'exit' uit om de WSL te verlaten:
Stap 3: maak een netwerk aan
Maak nu een netwerk voor de Elasticsearch Docker-container. Het is optioneel, maar kan nuttig zijn voor back-updoeleinden voor Elasticsearch-netwerken:
docker-netwerk maakt elastiek
Stap 4: Voer Elasticsearch uit
Voer nu de Elasticsearch-afbeelding uit om de Elastic-zoekopdracht in de container te installeren en uit te voeren:
havenarbeider rennen --naam es01 --netto elastisch -P 9200 : 9200 -P 9300 : 9300 -T docker.elastic.co / elastisch zoeken / elastisch zoeken:8.8.2
In de hierboven gegeven opdracht:
- “ -naam ” specificeert de naam van de Elasticsearch-container.
- “ -netto ” vlag wordt gebruikt om het externe netwerk in te sluiten.
- “ -P ” optie definieert de poorten van de Elasticsearch-container.
- “ -T ” wordt gebruikt om de “ TTY-pseudo ” terminal naar de container:
De onderstaande uitvoer laat zien dat we de Elasticsearch-container met succes hebben uitgevoerd en de ' Elasticsearch is niet normaal afgesloten ' fout.
Hier genereert de container de ' elastisch ” gebruikerswachtwoord. Met deze inloggegevens heeft de gebruiker toegang tot Elasticsearch in de browser. Dit genereert ook het token om Kibana te configureren:
Stap 5: Verificatie
Navigeren naar ' http://localhost:9200 ” in uw browser en verifieer dat, of de container nu wordt uitgevoerd op de opgegeven poort of niet:
De bovenstaande uitvoer geeft aan dat we de container op poort met succes hebben uitgevoerd ' 9200 ” en loste de “ Elasticsearch is niet normaal afgesloten ' fout.
Conclusie
Om de “ Elasticsearch is niet normaal afgesloten '-fout, moeten gebruikers de virtuele geheugenlimiet voor de Linux-container verhogen. Start hiervoor eerst de Docker-desktop met WSL via ' wsl -d docker-desktop ” commando. Verhoog daarna de virtuele geheugenlimiet met behulp van de ' sysctl -w vm.max_map_count=262144 ” commando. Voer vervolgens de afbeelding opnieuw uit om de Elasticsearch-container te maken en te starten. Dit bericht heeft de methode geïllustreerd om de fout 'Elasticsearch is niet normaal afgesloten' op te lossen.