Мне нужно перенести процесс ElasticSearch / Logsta sh с Windows на Docker. Этот процесс прекрасно работает в Windows (Elasticsearch и Logsta sh - это службы, в которых Logsta sh читает базу данных Oracle для подачи в ElasticSearch). Проблема в том, что когда я запускаю контейнер Logsta sh, Docker перестает отвечать на запросы и очень медленно, например, docker ps
занимает одну минуту. Чтобы уничтожить контейнер logsta sh, требуется еще одна минута. Я запускаю это на Windows 10 Pro с Docker Desktop и выполнил эти шаги .
Я загрузил два изображения (asticsearch: 7.5.1 и logsta sh: 7.5.1) и запустил контейнеры с
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.5.1
и
docker run --name cont_logstash -d -e LIB=/usr/share/logstash/pipeline/ojdbc8.jar -e
DRIVER=Java::oracle.jdbc.driver.OracleDriver -e CONN=jdbc:oracle:thin:@//172.0.0.2:51521/XE
-e USER=userdb -e PASSWORD=xxx -v vol_logstash:/usr/share/logstash/pipeline/ logstash:7.5.1
Обратите внимание, что я создал том для хранения файла logsta sh .conf и ojdbc8.jar Oracle JDB C водитель. Если я создаю bash в контейнере Logsta sh, я вижу эти файлы в /usr/share/logstash/pipeline/
.
. Мало того, что Docker очень медленный, но Logsta sh не работает на все. Если я запускаю Logsta sh в интерактивном режиме с -it
, я получаю это (обратите внимание, что нет никаких предупреждений о настройке):
C: \ docker> docker run - -name cont_logsta sh -it -e LIB = / usr / share / logstash / pipe / ojdbc8.jar -e DRIVER = Java :: oracle .jdb c .driver.OracleDriver -e CONN = jdb c: oracle: thin: @ // localhost: 51521 / XE -e USER = userdb -e ПАРОЛЬ = xxx -v vol_logsta sh: / usr / share / logstash / pipeline / logsta sh: 7.5 .1
Предупреждение о виртуальной машине 64-разрядного сервера OpenJDK: параметр UseConcMarkSweepG C устарел в версии 9.0 и, вероятно, будет удален в следующем выпуске. ПРЕДУПРЕЖДЕНИЕ: произошла недопустимая операция доступа с отражением ПРЕДУПРЕЖДЕНИЕ: незаконный доступ с отражением от com.headius.backport9.modules.Modules (файл: / usr / share / logstash / logsta sh -core / lib / jars / j ruby - complete-9.2.8.0.jar) в поле java .io.FileDescriptor.fd ПРЕДУПРЕЖДЕНИЕ. Пожалуйста, рассмотрите возможность сообщения об этом сопровождающим com.headius.backport9.modules.Modules. ПРЕДУПРЕЖДЕНИЕ. Используйте --illegal-access = warn, чтобы включить предупреждения о дальнейших незаконных операциях доступа с отражением ВНИМАНИЕ: Все незаконные операции доступа будут запрещены в следующем выпуске
В соответствии с документацией Logsta sh на Docker регистрирует в консоли, но я не Я не вижу никаких ошибок на экране. Любые идеи, как подойти к этому?
ОБНОВЛЕНИЕ
Я запускаю другие контейнеры без проблем, в том числе базы данных 8,4 ГБ Oracle.
Это это то, что я вижу с помощью команды docker stats
:

После того, как я отменяю контейнер logsta sh, статистика заполняется.