2016-01-05 7 views
6

mam pracę ES pojemnik doker bieganie że biegnę jak takUtrzymują Elastic Search danych w Docker Container

docker run -p 80:9200 -p 9300:9300 --name es-loaded-with-data --privileged=true --restart=always es-loaded-with-data 

I załadowany ES z pęczek danych testowych i chciał, aby zapisać go w tym stanie tak ja a następnie

wtedy gdy załaduję go z powrotem w danych już nie ma ... co daje?

docker load < es-tester.tar 

Odpowiedz

6

Jeśli zacząłeś z oficjalnej ES obrazu, to stosując objętość (https://github.com/docker-library/elasticsearch/blob/7d08b8e82fb8ca19745dab75ee32ba5a746ac999/2.1/Dockerfile#L41). Z tego powodu wszelkie dane zapisane na tym woluminie nie zostaną zatwierdzone przez Docker. Aby wykonać kopię zapasową danych, musisz skopiować dane z pojemnika: docker cp <container name>:/usr/share/elasticsearch/data <dest>

+1

Skończyło się na tym, że to zrozumiałem i dziękuję za odpowiedź. Prawdziwym sednem mojego problemu było to, że plik Dockerfile, na który patrzyłem, został sprawdzony w githubie, nie miał instrukcji VOLUME, ale ten, który posłużył do zbudowania obrazu dokowanego ES, był ... To spowodowało poważne zamieszanie. Tak Użyłem docker cp, a teraz mam wersję, która może załadować dane na temat uruchamiania dockera za pomocą -v, a także na tym, że nie używa woluminu, ale obvioulsy tworzy ogromny obraz dokowania. Dzięki creack –

+0

Jeśli jesteś podobny do mnie, używając docker-compose.yml i podałeś swoją ścieżkę do montowania woluminu, a to nie działa, powinieneś użyć 'sudo chown -R 1000: 1000/path/to/volume'. pracował w moim przypadku. –