windows
  • docker
  • cmd
  • cassandra
  • 2017-04-12 50 views 3 likes 
    3

    我想用docker构建一个cassandra集群。 The documentation已经告诉你如何做到这一点,所以这不是我的问题。如何在Windows机器上使用docker构建cassandra集群?

    但是,我目前在Windows 10上使用Docker,显然它不能执行docker run --name some-cassandra2 -d -e CASSANDRA_SEEDS="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' some-cassandra)" cassandra:tag中的嵌套命令,这会导致容器的空种子列表。

    如何在Windows中嵌入像这样的命令,或者 - 如果这不可行 - 请为此解决方法?

    回答

    2

    我设法解决它,这要归功于docker-compose.yml by Jason Giedymin。它应该在v1和docker-compose的v2中工作。通过这样做,您只需让docker从起始处执行链接,然后使用容器已经为您提供的环境变量告诉cassandras其他种子。

    sleep 30部分非常智能,它确保第二个容器不会尝试连接尚未完全启用的容器。

    我会推荐的一件事是使用external_links而不是links。这样其他容器不依赖于所有的cassandra容器来开始/工作。这将破坏分布式数据库的目的。

    我仍然不知道如何将Windows cmd命令嵌套到对方,所以我仍然会感谢一些提示。

    相关问题