как подключить кассандру в штуковину на Docker - PullRequest
0 голосов
/ 22 марта 2019

Я использую вещную доску (на докере), но я хочу также иметь возможность подключиться к кассандре на докерской вещке. Я хочу проверить структуру таблицы и сами данные.

Из справочника по установке вещи на Docker run нет никакой конфигурации -p 9042: 9042.

Поэтому я добавил ее в команду запуска docker (например, docker run -p 9090: 9090 -p 1883: 1883 -p 9042: 9042 -p 5683: 5683 / udp -v / thingboard /.mytb-data:/data .....). Тем не менее, я не могу событие Telnet на 9042 на мой основной хост.

Затем я проверил конфигурационные файлы cassandra в Docket Thingboard (/ etc / cassandra). Я обнаружил, что значением rpc_address является localhost, и нет никакой строки для broadcast_rpc_address . Я не уверен, что мне следует вводить в файл конфигурации, так как это контейнер Docker.

Вот мои настройки порта (я добавил скриншот ниже):

0.0.0.0:1883->1883/tcp, 0.0.0.0:9042->9042/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:5683->5683/udp

CONTAINER ID -> ac2b6e2316a7 
IMAGE      -> thingsboard/tb-cassandra     
COMMAND    -> "start-tb.sh"    
PORTS      -> 0.0.0.0:1883->1883/tcp, 0.0.0.0:9042->9042/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:5683->5683/udp  

порты на Docker работают

Спасибо

1 Ответ

1 голос
/ 23 марта 2019

В соответствии с вещь / tb-cassandra Dockerfile , Cassandra работает в конфигурации по умолчанию и прослушивает localhost.Вот почему он не принимает никаких подключений от хост-машины докера.

Чтобы подключиться к Cassandra через cqlsh, вам необходимо войти в контейнер с помощью следующей команды:

docker exec -it <container_id> /bin/bash

затем вы можете подключиться к Кассандре, введя команду cqlsh.

...