在码头工作器中运行Kudu并掌握服务器双向连接/循环链接问题 - docker组合

时间:2018-04-05 12:45:27

标签: docker docker-compose apache-kudu

当两个容器需要通过DNS连接时,如何运行Kudu,它需要两个容器 - 一个用于主服务器,另一个用于docker下的服务器。

可以使用以下命令在Docker下运行Kudu:

docker run --name kudu-master --hostname kudu-master --detach --publish 8051:8051 --publish 7051:7051 kunickiaj/kudu master

docker run --name kudu-tserver --hostname kudu-tserver --detach --publish 8050:8050 --publish 7050:7050 --link kudu-master --env KUDU_MASTER=kudu-master kunickiaj/kudu tserver

但是,上面定义了单向链接,从kudu-tserverkudu-master而不是反之。

为了让Kudu正常运行,麻烦kudu-masterkudu-tserver需要能够相互连接。

如何配置Docker容器,以便双向链接有效?

1 个答案:

答案 0 :(得分:0)

docker run中的link参数是一项遗留功能,可以将其删除(引用[1][2])。

您可以使用docker-compose引发多个Docker容器并将它们相互连接。

要使其正常工作,请创建一个名为kudu的文件夹,并在其下放置以下docker-compose.yml文件:

version: '3'
services:
  kudu-master:
    image: "kunickiaj/kudu"
    hostname: kudu-master
    ports:
      - "8051:8051"
      - "7051:7051"
    command:
      master
    networks:
      kudu_network:
        aliases:
          - kudu-master
  kudu-tserver:
    image: "kunickiaj/kudu"
    hostname: kudu-tserver
    ports:
      - "8050:8050"
      - "7050:7050"
    environment:
      - KUDU_MASTER=kudu-master
    command:
      tserver
    networks:
      kudu_network:
        aliases:
          - kudu-tserver
networks:
  kudu_network:

此文件包含2个服务(kudu-masterkudu-tserver)以及一个网络,其中两个服务都具有对网络其余部分(彼此)可见的别名。 [File reference]

然后使用以下命令行运行docker-compose

docker-compose -f "filePathToYourDockerComposeYmlFile" up -d

或者,如果要重新创建Docker容器:

docker-compose -f "filePathToYourDockerComposeYmlFile" up -d --force-recreate

其他有用的命令[reference]

停止容器:

docker-compose -f "filePathToYourDockerComposeYmlFile" stop

删除容器:

docker-compose -f "filePathToYourDockerComposeYmlFile" rm -f