У меня есть два компонента: hbas&ookeeper as single container и hbase-printer (мой код Java) на моем хосте. Моя цель - распечатать содержимое некоторой таблицы hbase. Проблема в том, что соединение с 2181 (порт zookeeper) преуспевает, но похоже, что я получаю направленный на случайный случайный порт для связи, и этот порт не отображается. Я использую docker-compose.yml
:Управление сетью/портами для докеры
version: '2'
services:
hbase:
image: dy1-dockerv2-local.jfrog.io/hbase:latest
restart: always
hostname: hbase-docker
ports:
- "60010:60010"
- "60000:60000"
- "60020:60020"
- "60030:60030"
- "9095:9095"
- "8085:8085"
- "8080:8080"
- "2181:2181"
- "9091:9091"
- "9090:9090"
expose:
- "9091"
- "2181"
volumes:
- ./data/hbase:/data
- ./logs/hbase/:/opt/hbase/logs
network_mode: "bridge"
В моих журналах ява я получаю:
23-02-2017 09:29:54,413 INFO [ClientCnxn]: [main-SendThread(localhost:2181)] Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x15a69d8a7a30006, negotiated timeout = 40000
23-02-2017 09:30:16,955 INFO [HBaseRPC]: [main] Problem connecting to server: hbase-docker/172.17.0.2:39521
В моем хозяине я могу видеть прослушивания портов:
$ netstat -na | grep LISTEN
tcp6 0 0 ::1.2181 *.* LISTEN
tcp4 0 0 *.2181 *.* LISTEN
tcp6 0 0 ::1.8080 *.* LISTEN
tcp4 0 0 *.8080 *.* LISTEN
tcp6 0 0 ::1.8085 *.* LISTEN
tcp4 0 0 *.8085 *.*
(и остальная часть портов, которые я определил в своем docker-compose.yml
файле
И в контейнере I см.:
[email protected]:/# netstat -na | grep LISTEN
tcp6 0 0 172.17.0.2:39521 :::* LISTEN
tcp6 0 0 :::2181 :::* LISTEN
tcp6 0 0 :::60010 :::* LISTEN
tcp6 0 0 172.17.0.2:32785 :::* LISTEN
tcp6 0 0 :::43189 :::* LISTEN
Я вижу, что боковой порт 39521 доступен внутри контейнера, но не подвергается воздействию хоста. Я не могу добавить его в свой docker-compose.yml
, потому что он изменился случайным образом (выглядит как-то между 30000-50000). Как я могу открыть случайный порт для моего хоста?
Вы можете проверить версию hbase, установленную в контейнере/изображении? –
@AlexanderBlock 0.94.26 - Я знаю, что это старый, но это тот, который я использую в производстве (не докционированный) – ItayB