
bretfisher/examplevotingapp_result一个跨多个Docker容器运行的简单分布式应用,主要用于演示分布式应用在Docker生态系统中的部署和运行,适用于学习和非盈利目的。
下载Docker Desktop(Mac或Windows),Docker Compose会自动安装。Linux用户需确保安装最新版本的Docker Compose。
Linux栈使用Python、Node.js、.NET Core(可选Java),Redis用于消息传递,Postgres用于存储。
若使用Windows版Docker Desktop,可通过切换到Linux容器运行Linux版本,或运行Windows容器版本。
在当前目录运行:
bashdocker-compose up
应用将运行在http://localhost:5000,结果页面在http://localhost:5001。
若要在Docker Swarm上运行,首先确保已创建swarm(若未创建,运行docker swarm init),然后在当前目录运行:
bashdocker stack deploy --compose-file docker-stack.yml vote
应用的另一个版本使用基于Nano Server的Windows容器,栈运行在.NET Core上,使用NATS进行消息传递,TiDB作为存储。
可通过以下命令从源代码构建:
bashdocker-compose -f docker-compose-windows.yml build
然后运行应用:
bashdocker-compose -f docker-compose-windows.yml up -d
或在Windows swarm中运行
docker stack deploy -c docker-stack-windows.yml vote
应用将运行在http://localhost:5000,结果页面在http://localhost:5001。
k8s-specifications文件夹包含投票应用服务的yaml规范。
首先创建vote命名空间:
bashkubectl create namespace vote
运行以下命令创建部署和服务对象:
bashkubectl create -f k8s-specifications/ deployment "db" created service "db" created deployment "redis" created service "redis" created deployment "result" created service "result" created deployment "vote" created service "vote" created deployment "worker" created
投票界面在集群各主机的31000端口可用,结果界面在31001端口可用。
!架构图






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务