Tag: 窗群

docker服务更新:“无法在registry上访问图像以logging它的摘要”

我在Amazon的Elastic Container Registry(ECR)上有一个图像,我想在Docker单节点群中将其作为Docker服务进行部署。 目前该服务正在运行图像latest标签的旧版本,但是我已经将latest版本的latest标签上传到了ECR。 运行docker service update –force my_service在我的群集节点上使用映像XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest运行docker service update –force my_service ,导致: image XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest could not be accessed on a registry to record its digest. Each node will access XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest independently, possibly leading to different nodes running different versions of the image. 这似乎阻止节点从registry中拉取latest标记的新副本,并且正确更新该服务。 我正确logindocker login到ECR,并运行docker pull XXXXXXXXXXXX.dkr.ecr.us-east-1.amazonaws.com/my_service:latest工作正常(并返回一个摘要。) 为什么docker service update无法从ECRregistry读取摘要,尽pipe图像可用?

Docker Swarm – networking覆盖不能连接所有容器

我目前有3个EC2实例设置了Docker Swarm和Consul。 我有3个简单的节点应用程序遍布所有3个实例,然后nginx在我的swarm主机上进行路由。 使用覆盖networking指南,我创build了一个名为mynet的新覆盖mynet并将每个容器连接到此networking。 使用docker inspect我可以确认每个节点容器和nginx容器都连接到mynet并具有IP。 但是,在对我的nginx容器进行切换之后,它只能通过networking与位于同一主机上的节点应用程序通信,而不能与集群中其他主机上的节点应用程序进行通信。 在运行docker network inspect mynet ,只列出了两个容器(同一主机上的nginx和一个节点实例),而另外两个容器没有列出,即使它们具有该覆盖networking的名称和IP从docker inspect 。 这个想法是使用一个nginx反向代理来添加任何联机到它的configuration的新的容器,但我坚持让容器所有连接。 根据Dockernetworking文档覆盖这应该是可能的。 我究竟做错了什么? 谢谢。 编辑: 在发送垃圾邮件之后, docker network inspect mynet几次docker network inspect mynet ,看起来容器不断地与networking连接和断开连接,即使我已closures了所有的防火墙并打开了用于testing目的的端口。 什么会导致这样的事情?

sudo:docker-machine:command not found

谁曾经尝试过这个关于Docker Swarm的教程? https://docs.docker.com/get-started/part4/ 有一个部分叫做: 创build一个集群 。 我想要做的是用docker-machine创build几个虚拟机。 由于我使用ubuntu16.0.4所以我使用以下命令来获得VirtualBox。 sudo apt-get update sudo apt-get install virtualbox-5.2 在我安装VirtualBox后,键入一个命令,如: docker-machine create –driver virtualbox myvm1 但它说: sudo:docker-machine:command not found 所以我input另一个命令来检查我是否已经正确安装了VirtualBox。 sudo virtualbox版本 这将打开Oracle VM VirtualBox Manager ,这意味着我没有正确安装VirtualBox,但不确定。 任何人都可以帮我解决问题吗? 任何帮助,将不胜感激。

无法连接到docker集装箱

我设置了两个swarmpipe理器节点(mgr1,mgr2)。 但是,当我尝试连接到容器,它会引发错误消息。 [root@ip-10-3-2-24 ec2-user]# docker run –restart=unless-stopped -h mgr1 –name mgr1 -d -p 3375:2375 swarm manage –replication –advertise 10.3.2.24:3375 consul://10.3.2.24:8500/ [root@ip-10-3-2-24 ec2-user]# docker exec -it mgr1 /bin/bash rpc error:code = 2 desc =“oci runtime error:exec failed:exec:\”/ bin / bash \“:stat / bin / bash:no such file or directory” 这两个服务器都发生了(mgr1,mgr2)。 我还在每个节点上运行consul容器,并能够连接到领事容器。

Terraform可以从remote_exec命令设置variables吗?

我正在尝试使用Terraform在AWS中构build一个Docker Swarm集群。 我已经成功地启动了一个Swarmpipe理器,但是我正在设法解决如何将连接键传递给worker(将在pipe理器之后创build)。 我想要一些运行docker swarm join-token worker -q命令的方法,它可以设置为Terraformvariables。 这样,工作人员可以有一个像docker swarm join ${var.swarm_token} ${aws_instance.swarm-manager.private_ip}一样的remote_exec命令docker swarm join ${var.swarm_token} ${aws_instance.swarm-manager.private_ip} 我怎样才能做到这一点? 我的configuration如下: resource "aws_instance" "swarm-manager" { ami = "${var.manager_ami}" instance_type = "${var.manager_instance}" tags = { Name = "swarm-manager${count.index + 1}" } provisioner "remote-exec" { inline = [ "sleep 30", "docker swarm init –advertise-addr ${aws_instance.swarm-manager.private_ip}" "docker swarm join-token worker […]