Tag: docker swarm

为什么我无法通过名称或VIP访问Docker群集中的服务?

所以我有一个运行在Ubuntu主机上的docker引擎(版本1.12.6,build 78d1802)。 我创build了一个使用群发 docker swarm init –advertise-addr 192.168.1.2 我有一个本地预build的图像,我使用它创build一个名为nodeapp的服务,如下所示 docker service create –name nodeapp –publish 3000:3000 –replicas 2 node-app-image 现在,当我inputcurl localhost:3000我得到了预期的正确响应,一切正常。 这个文件和我提到的许多其他人似乎build议docker v1.12.x通过DNS或VIP方法内置负载均衡/路由。 所以我试图通过服务名称或虚拟IP访问我的服务如下 curl nodeapp:3000 curl: (6) Could not resolve host: nodeapp 和 curl 10.255.0.6:3000我curl: (7) Failed to connect to 10.255.0.6 port 3000: Connection timed out 请注意,我使用以下命令获取虚拟IP docker service inspect –format {{.Endpoint.VirtualIPs}} nodeapp产生[{boq3g7s47w47q2ej56li9s3dw 10.255.0.6/16}] […]

使多个Docker机器可以通过本地networking访问。 Linux和Mac

我知道有几个类似的问题,但据我所知,没有一个答案,我可以去工作的设置,只要文件去,我有点失落。 我的目标是在本地networking上build立一个linux开发服务器,我可以为每个项目运行多个docker机器/容器。 理想情况下,我将在开发箱上创build一个docker-machine,然后能够从我的任何一台本地networking机器上访问它。 我可以直接在Linux机器上运行docker并通过发布端口来访问,但是我想运行多个不同IP地址的机器,这样我们可以运行多个VM(多个项目)。 我已经看了Docker Swarm和覆盖networking,只是无法find一个单一的教程或一套指示,让这种设置运行。 所以我有一个在192.168.0.101与docker机的开箱。 我想创build一个新的机器,在其上运行nginx,然后从本地networking上的另一台机器上访问nginx i..e http://192.168.99.1/然后设置另一台机器,访问http:// 192.168.99.2/ 。 如果有人设法做到这一点,我会有兴趣知道如何。 我一直在考虑这样做的一种方式,是在开发包的本地主机上运行nginx,并设置configuration规则来代理本地机器,不确定这将工作得如何(它适用于Web服务器,但是什么如果我想ssh或bash到这些机器之一,或者如果有一个mysql容器我想连接)

如何在不同的容器间共享静态数据,或者我们可以在容器之间共享caching的数据?

我在学Docker。 我想到的问题是,如果可以共享caching的数据,例如不同容器之间的静态表数据? 会有什么性能影响?

有没有办法使docker集装箱真正容错?

我的意思是容错,就像运行一个备份容器一样,不断地将活动容器的状态(内存)同步到被动容器,所以如果出现故障,我可以故障切换到另一个容器,而不会丢失主动networking连接或运行在容器? 我知道docker群存在,这可以使我的容器高度可用,通过在其他节点上重新启动它们以防止节点故障,甚至通过复制使服务容错,但这只有在我的服务是无状态的或保存在共享的networking存储或数据库中。 我正在寻找像vSphere FT这样的解决scheme。

symfony classes.map无法打开stream:没有这样的文件或目录

当我尝试在Docker群集节点中部署symfony时出现此错误 Kernel.php中的ContextErrorException第338行: 警告:file_put_contents(/home/backend_microservice/private_webapp/var/cache/dev/classes.map):未能打开stream:没有这样的文件或目录 我试图手动删除caching,我删除了供应商目录,我用composer php生成一个新的,但仍然给出了同样的错误。 相同的configuration工作正常,只有docker引擎,但不工作在群模式。 操作系统:CentOS 7.3 虚拟化:Docker版本17.06.0-ce,build 02c1d87 Swarm模式 Symfony:3.2.9 任何帮助或build议? 先谢谢你。

Docker – 故障转移群集

我有一套Docker服务。 有两个节点(主动和备用)。 应该在每个节点上运行相同数量的每个服务的实例。 所有传入的请求应该被转发到主动节点。 在主动节点不可用的情况下,所有传入的请求应该被redirect到备用节点。 有没有办法: 运行每个服务的实例数量相等? 我发现有3个群策略 – 传播,binpack,随机,但他们不适合。 为docker负载平衡器configuration故障转移策略? 或者是部署和configuration外部负载均衡器(nginx)的唯一方法?

Docker Swarm Redis和Sentinel与主从复制IPparsing客户端故障

我遇到了一个问题,我不知道如何解决这个问题。 我的redis定点生态系统如下: 3哨兵群集 – >使用docker-composepipe理1个主站和2个从站 我已经为eco系统创build了docker overlaynetworking,并使用docker stack deploy来运行docker compose yml。 每个节点上的redis-cli显示正确的INFOconfiguration。 但是外部客户正在遇到问题。 当我将哨兵地址提供给客户端应用程序(在我的情况下,这是一个spring的redis应用程序),我得到主Redis的覆盖networking的内部IP地址。 这是客户无法识别的,并且失败。 我怎样才能得到一个可以从外部解决的IP地址? 其次,由于docker群pipe理覆盖networking上的IP地址,甚至有可能。 这是正确的方法,即使用docker群? 任何反馈将不胜感激。 version: '3' services: redis-master: image: redis:latest volumes: – "/docker-service-data/master:/data" – /redis-docker/redis.conf:/etc/redis.conf command: redis-server /etc/redis.conf ports: – 6379:6379 deploy: mode: replicated replicas: 1 placement: constraints: [node.role == manager] networks: – rev_proxy redis-slave: image: redis:latest volumes: – "/docker-service-data/slave:/data" […]

如何在Ubuntu上设置本地单节点Docker Swarm

我在一台Ubuntu机器上,我试图build立一个本地环境来testing我的docker堆栈,我创build了一个Swarm,使用docker swarm init –advertise-adr <IP> docker swarm init ,还有一些docker swarm init –advertise-adr <IP>在运行ifconfig发现了。 群体已初始化,一切都很正常,但是当我部署一个堆栈时,我不能使用浏览器访问我的服务,它只是永远加载。 我已经在AWS环境中尝试了相同的堆栈,并且工作正常,所以我假定与我当前的本地环境有关。 另外,如果我运行与docker-compose up相同的堆栈它的作品。 iptables -S输出: -P INPUT ACCEPT -P FORWARD DROP -P OUTPUT ACCEPT -N DOCKER -N DOCKER-INGRESS -N DOCKER-ISOLATION -N DOCKER-USER -A FORWARD -j DOCKER-USER -A FORWARD -j DOCKER-INGRESS -A FORWARD -j DOCKER-ISOLATION -A FORWARD -o docker0 -m conntrack –ctstate […]

docker群与弹性群集

我是弹性和docker群的初学者。 我花了两个星期的时间学习,并尝试准备一个有弹性的docker群。 我想准备一个有Docker群的弹性群。 我们可以轻松地使用缩放比例。 我认为我们需要swarm来做到这一点,并且弹性集群保持swarm节点之间的数据同步。 我也想为完整的自动化我想使用容器主机名configuration禅。 由于群体轮Rubin“elasticsearch”主机名应该返回所有的ip。 docker版本是:17.06.2-ce elastic docker image版本是:elasticsearch:latest docker – 撰写版本> = 3 首先,我试图遵循这个指令:sematext.com/blog/2016/12/12/docker-elasticsearch-swarm 这里nginx-proxy不是作为一个服务(docker-compose文件的一部分)工作的,但是它是作为容器工作的。 (docker运行)。 我不知道有什么区别。 但是这个想法本身已经准备好了docker的早期版本,并且不适合我。 这条指令背后的主要思想是,discovery.zen.ping.unicast.hosts具有容器名称。 Docker群体本身负载平衡,然后弹性可以find另一个节点。 因为nginx-proxy不能用作服务,所以我试着按照这个指令去做:derpturkey.com/elasticsearch-cluster-with-docker-engine-swarm-mode/ 我已经定义了nginx服务来连接弹性,我在这里configuration了所有的参数。 version: '3' services: elasticsearch: image: 'elasticsearch:5' command: [ elasticsearch, -E, network.host=0.0.0.0, -E, discovery.zen.ping.unicast.hosts=elasticsearch, -E, discovery.zen.minimum_master_nodes=1 ] nginx: image: 'nginx:1' ports: – '9200:9200' command: | /bin/bash -c "echo ' server { […]

我无法使用基于Ubuntu的镜像部署Docker Swarm服务

我是Docker / Docker Swarm中的新手,我想在Swarm上创build一个自定义的mosquitto服务。 我从ubuntu创build了一个自定义的蚊子图像lcsf/mosquitto3 :latest,然后我添加了一些工具(ping,ipconfig)。 我可以用docker run和/bin/bash运行一个容器,但是我不能用这个镜像创build一个Swarm服务。 该服务未成功创build。 下面有一些输出。 Dockerfile: FROM ubuntu:latest RUN apt-get -y update RUN apt-get install -y mosquitto mosquitto-clients EXPOSE 80 443 1883 8083 8883 Docker服务创build输出: overall progress: 0 out of 1 tasks 1/1: preparing [========> ] verify: Detected task failure 这个输出显示在一个循环中,然后我用ctrl + c停止它,服务被创build,但不运行,具有0/1副本。 docker服务ps mqtt(我的自定义名称)输出,有3个节点。 ID NAME IMAGE NODE DESIRED […]