Swirl 是一个用于 Docker 的 Web 管理工具,专注于 Swarm 集群。
警告:v1.0+ 版本与之前版本不完全兼容,建议重新部署而不是直接升级。





所有选项都可以通过 config/app.yml 设置。
name: swirl
banner: false
web:
entries:
- address: :8002
authorize: '?'
swirl:
db_type: mongo
db_address: mongodb://localhost:27017/swirl
# token_expiry: 30m
# docker_api_version: '1.41'
# docker_endpoint: tcp://docker-proxy:2375
log:
loggers:
- level: info
writers: console
writers:
- name: console
type: console
layout: '[{L}]{T}: {M}{N}'
目前只有这些选项可以通过环境变量设置。
| 名称 | 值 |
|---|---|
| DB_TYPE | mongo(默认),bolt |
| DB_ADDRESS | mongodb://localhost:27017/swirl |
| TOKEN_EXPIRY | 30m |
| DOCKER_ENDPOINT | tcp://docker-proxy:2375 |
| DOCKER_API_VERSION | 1.41 |
Docker 从 v17.06 开始支持通过 swarm 挂载配置文件,因此你可以将配置存储在 swarm 中并挂载到程序。
Swirl 目前支持两种存储引擎:mongo 和 bolt。bolt 适用于开发环境,如果使用 bolt 存储引擎,Swirl 只能部署一个副本。
只需将 swirl 二进制文件和 config 目录复制到主机,然后运行它。
./swirl
docker run -d -p 8001:8001 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /data/swirl:/data/swirl \ -e DB_TYPE=bolt \ -e DB_ADDRESS=/data/swirl \ --name=swirl \ docker.cnb.cool/zhiqiangwang/swirl:latest
docker run -d -p 8001:8001 \
--mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
-e DB_TYPE=mongo \
-e DB_ADDRESS=mongodb://localhost:27017/swirl \
--name=swirl \
docker.cnb.cool/zhiqiangwang/swirl:latest
docker service create \
--name=swirl \
--publish=8001:8001/tcp \
--env DB_TYPE=bolt \
--env DB_ADDRESS=/data/swirl \
--constraint=node.hostname==manager1 \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
--mount=type=bind,src=/data/swirl,dst=/data/swirl \
docker.cnb.cool/zhiqiangwang/swirl:latest
docker service create \
--name=swirl \
--publish=8001:8001/tcp \
--env DB_ADDRESS=mongodb://localhost:27017/swirl \
--constraint=node.role==manager \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
docker.cnb.cool/zhiqiangwang/swirl:latest
docker stack deploy -c compose.yml swirl
Swirl 使用服务标签来支持一些功能,下表中列出了当前支持的标签。
| 名称 | 描述 | 示例 |
|---|---|---|
| swirl.scale | 服务自动扩缩容 | min=1,max=5,cpu=30:50 |
要从源代码构建 Swirl,你需要安装 yarn 和 go(v1.16+)。
$ cd ui
$ yarn
$ yarn build
$ cd ..
$ go build
本产品根据 MIT 许可证授权给您。除非遵守许可证,否则您不得使用本产品。有关更多信息,请参阅 LICENSE 和 NOTICE。