# Обновление elasticsearch в docker контейнере с версии 2.х до 6.x

**URL:** <https://discuss.elastic.co/t/elasticsearch-docker-2-6-x/133216>\
**Category:** Вопросы на русском языке\
**Created:** [May 24, 2018, 7:25pm UTC](https://discuss.elastic.co/t/elasticsearch-docker-2-6-x/133216 "2018-05-24T19:25:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![uliana\_andreeva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/uliana_andreeva/32/26656_2.png) [@uliana\_andreeva](https://discuss.elastic.co/u/uliana_andreeva)\
**Post date:** [May 24, 2018, 7:25pm UTC](https://discuss.elastic.co/t/elasticsearch-docker-2-6-x/133216/1 "2018-05-24T19:25:07Z")

</div>

Здравствуйте!  
Я пытаюсь обновить elasticsearch с 2.4.4 до 6.2.2.  
Согласно статье [https://www.elastic.co/guide/en/elasticsearch/reference/current/reindex-upgrade.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/reindex-upgrade.html),  
Чтобы обновить кластер Elasticsearch с 2.x, есть два варианта:

- full cluster restart до 5.6, реиндекс старых индексов, обновление до 6.x.
- создание нового кластера версии 6.x и удаленный реиндекс, который импортирует индексы непосредственно из кластера 2.x.

Я начала со второго варианта - удаленного реиндекса: я подняла соседний контейнер с ES 6.2.2, создала все необходимые индексы со всеми настройками и маппингами из старых индексов, но когда я пытаюсь выполнить POST / \_reindex, я получаю JSON, который говорит, что ничего не было обновлено или создано. При этом никаких ошибок нет. Соответственно, индексы в ES 6.2.2 по-прежнему пусты, то есть в новую версию ничего не переносится.

С первым способом тоже не все гладко. Общие шаги мне ясны, но есть вопросы:  
Шаг "Shutdown all nodes": что это значит в случае с контейнерами? Мне нужно просто остановить контейнер с ES 2.4.4?  
Шаг "Upgrade all nodes using RPM or Debian packages": как я могу сделать это в контейнерах? Развернуть рядом контейнер с новой версией ES или как?

Помогите, пожалуйста, разобраться, как обновить версию наиболее простым и правильным способом с учетом того, что все инстансы ES живут в Docker контейнерах?

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [May 24, 2018, 7:54pm UTC](https://discuss.elastic.co/t/elasticsearch-docker-2-6-x/133216/2 "2018-05-24T19:54:53Z")

</div>

> я получаю JSON, который говорит, что ничего не было обновлено или создано.

Можно на этот JSON взглянуть? Как вы запускаете эту команду?

> Шаг "Upgrade all nodes using RPM or Debian packages": как я могу сделать это в контейнерах?

У вас директория data находиться внутри контейнера или снаружи?

---

<div class="post-metadata">

**Author:** ![uliana\_andreeva](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/uliana_andreeva/32/26656_2.png) [@uliana\_andreeva](https://discuss.elastic.co/u/uliana_andreeva)\
**Post date:** [May 25, 2018, 10:41am UTC](https://discuss.elastic.co/t/elasticsearch-docker-2-6-x/133216/3 "2018-05-25T10:41:23Z")

</div>

> [@Igor\_Motov](#):
>
> Можно на этот JSON взглянуть? Как вы запускаете эту команду?

У меня сейчас два контейнера: 2.4.4 на 9200 порту, 6.2.2 на 9260 порту. В конфиге 6.2.2 в вайтлист добавлен 127.0.0.1:9200. Запускаю так:

```
POST /_reindex
{
  "source": {
    "remote": {
      "host": "http://127.0.0.1:9200"
    },
    "index": "events",
    "query": {
      "match": {
        "test": "data"
      }
    }
  },
  "dest": {
    "index": "events"
  }
}

```

Исходный индекс events содержит некоторые документы. В 6.2.2 тоже есть индекс events, который создан руками с настройками и маппингами из старого индекса, но он пустой. Получаю ответ:

```
{
    "took": 15,
    "timed_out": false,
    "total": 0,
    "updated": 0,
    "created": 0,
    "deleted": 0,
    "batches": 0,
    "version_conflicts": 0,
    "noops": 0,
    "retries": {
        "bulk": 0,
        "search": 0
    },
    "throttled_millis": 0,
    "requests_per_second": -1,
    "throttled_until_millis": 0,
    "failures": []
}

```

В результате индекс events в 6.2.2 пустой, документов не содержит.

> [@Igor\_Motov](#):
>
> У вас директория data находиться внутри контейнера или снаружи?

Только внутри контейнера.

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [May 25, 2018, 1:17pm UTC](https://discuss.elastic.co/t/elasticsearch-docker-2-6-x/133216/4 "2018-05-25T13:17:35Z")

</div>

А вы искать по индексу `events` с запросом

```auto
    "query": {
      "match": {
        "test": "data"
      }
    }

```

не пробовали? Он сколько записей вам возвращает?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 22, 2018, 1:21pm UTC](https://discuss.elastic.co/t/elasticsearch-docker-2-6-x/133216/5 "2018-06-22T13:21:40Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
