amazon-web-services - Terraform 无法让 docker 加入 swarm

标签 amazon-web-services docker amazon-ec2 terraform

我正在尝试使用 Terraform 启动一些 EC2 服务器,我将 Docker 群配置为在其上运行。我在 this github repo 上获得了所有代码.

错误

aws_instance.swarm-node.0 (remote-exec): Connected!
aws_instance.swarm-node.0 (remote-exec): Cannot connect to the Docker daemon. Is the docker daemon running on this host?
aws_instance.swarm-node.0 (remote-exec): flag needs an argument: --token
aws_instance.swarm-node.0 (remote-exec): See 'docker swarm join --help'.

使用--token的代码

provisioner "remote-exec" {
  inline = [
    "echo ===================================",
    "echo JOIN-TOKEN: `docker -H ${aws_instance.swarm-manager.0.private_ip} swarm join-token -q` ",
    "echo ===================================",
    "echo ===================================",
    "sudo docker swarm join ${aws_instance.swarm-manager.0.private_ip}:2377 --token $(docker -H ${aws_instance.swarm-manager.0.private_ip} swarm join-token -q worker)"
  ]
}

上述命令的输出:

aws_instance.swarm-node.1 (remote-exec): Usage:  docker swarm join-token [-q] [--rotate] (worker|manager)

aws_instance.swarm-node.1 (remote-exec): Manage join tokens
aws_instance.swarm-node.1 (remote-exec): JOIN-TOKEN:
aws_instance.swarm-node.1 (remote-exec): ===================================
aws_instance.swarm-node.1 (remote-exec): ===================================
aws_instance.swarm-node.1 (remote-exec): ===================================
aws_instance.swarm-node.1 (remote-exec): ===================================
aws_instance.swarm-node.1 (remote-exec): ===================================
aws_instance.swarm-node.1 (remote-exec): Cannot connect to the Docker daemon. Is the docker daemon running on this host?
aws_instance.swarm-node.1 (remote-exec): flag needs an argument: --token

我应该怎么做才能使 $(docker -H ${aws_instance.swarm-manager.0.private_ip} 返回 token 。

最佳答案

首先,第4行代码不完整;您必须指定要打印的 token [worker|manager]

请确保 docker 守护进程正在管理器和工作实例上运行。并且您的防火墙规则也已在两个实例上正确设置。

关于amazon-web-services - Terraform 无法让 docker 加入 swarm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44741460/

相关文章:

docker - kube-apiserver.yaml 在哪里?

css - CloudFront、S3 和 Apache 的 CORS 配置问题

amazon-web-services - 即使运行Docker容器也无法访问AWS EC2实例

amazon-web-services - cloudformation生命周期事件无法发布到sns

amazon-web-services - 无法在 AWS 中通过 yum 安装软件包,[Errno -1] repomd.xml 与 epel 的 metalink 不匹配

amazon-web-services - Azure 提供商中的 AWS lambda 层相当于什么?

docker-compose 目录以在路径中构建

django - 如何在docker中将postgis连接到django

amazon-web-services - 无法在 VPC 中创建子网 - 获取 "Not with in Range error"

amazon-web-services - AWS CodePipeline : Get CloudFormation outputs in CodeBuild