
bretfisher/examplevotingapp_vote一个跨多个Docker容器运行的简单分布式应用。
下载适用于Mac或Windows的Docker Desktop。Docker Compose将自动安装。在Linux上,请确保您拥有最新版本的Compose。
Linux栈使用Python、Node.js、.NET Core(或可选Java),Redis作为消息队列,Postgres作为存储。
如果您使用Windows版Docker Desktop,可以通过切换到Linux容器来运行Linux版本,或运行Windows容器版本。
在当前目录中运行:
docker-compose up
应用将运行在http://localhost:5000,结果页面在http://localhost:5001。
或者,如果您想在Docker Swarm上运行,首先确保您有一个swarm。如果没有,请运行:
docker swarm init
创建swarm后,在当前目录运行:
docker stack deploy --compose-file docker-stack.yml vote
应用的另一个版本使用基于Nano Server的Windows容器。此栈运行在.NET Core上,使用NATS作为消息队列,TiDB作为存储。
您可以通过以下命令从源代码构建:
docker-compose -f docker-compose-windows.yml build
然后使用以下命令运行应用:
docker-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命名空间:
$ kubectl create namespace vote
运行以下命令创建部署和服务对象:
$ kubectl 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端口上可用。
!架构图
投票应用每个客户端仅接受一次投票。如果已从某个客户端提交投票,则不会再记录该客户端的投票。
这并不是一个架构完善、设计完美的分布式应用示例……它只是一个简单示例,展示了您可能会遇到的各种类型的组件和语言(队列、持久化数据等),以及如何在Docker中进行基本处理。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务