docker-compose问题与hadoop + hbase设置

时间:2016-03-23 14:24:11

标签: hadoop docker hbase docker-compose

我已经为hadoop和hbase设置了docker容器而没有任何问题。我现在正试图将它们放在一起并使用docker-compose按顺序运行它们。

version: '2'
services:
 hadoop:
  image: hadoop:2.6
  container_name: hadoop-compose
  ports:
  - "50070:50070"  
 hbase:
 image: hbase:0.98
 container_name: hbase-compose
 ports:
 - "9000:9000"
 command: bash -c "while ! nc -v -z -w 3 172.17.0.2 50070; do echo waiting for hadoop; sleep 5; done; sh /opt/hbase-server.sh"
 depends_on:
 - hadoop
 links:
 - hadoop

我想在hadoop完成后初始化hbase。为此,我定义了一个ping hadoop容器的简单命令,如果成功,则继续运行hbase-server脚本。

我不明白为什么hbase容器无法ping hadoop而是抛出此错误

  

nc:连接到172.17.0.2端口50070(tcp)超时:正在进行操作

如果我使用docker和hbase中的hadoop分别启动容器,它会正常连接。 compose文件有问题,还是我弄乱了命令脚本?

P.S:我还提到this post(在Y之前等待容器X)

由于

1 个答案:

答案 0 :(得分:2)

  1. 使用docket network ls

  2. 检查您的泊坞网络名称
  3. 检查网络以验证您的服务是否存在docker network inspect "name of your network"网络名称应该是自您使用版本2以来docker-compose文件所在目录的名称。

  4. 假设您的服务存在于同一网络中,请确保他们充分重试其连接。使用links或depends_on仅控制启动顺序,但并不一定意味着一个应用程序将等待另一个应用程序完全初始化。 https://docs.docker.com/compose/startup-order/

  5. P.S。如果你指定链接我不相信你需要depends_on。 https://docs.docker.com/compose/compose-file/#links