docker compose网络/端口处理

q3aa0525  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(557)

我有两个组件:hbas&ookeeper作为单个容器和主机中的hbase打印机(我的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"

在java日志中,我得到:

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 文件
在容器里我看到:

root@hbase-docker:/# 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之间的东西)。如何向主机公开随机端口?

8ehkhllq

8ehkhllq1#

你最喜欢面对https://issues.apache.org/jira/browse/hbase-10289,固定在0.99.0和0.98.4。在对答案的评论中,您仍然使用旧版本的hbase,可能<0.99.0。
您应该尝试使用更新版本的hbase。您可以在docker hub上找到一个示例:https://hub.docker.com/r/dajobe/hbase/

相关问题