跳转到内容

使用Docker进行部署

如果你想要使用SwanLab私有化部署(社区版),请按照下面的流程进行安装。

logo

先决条件

在安装 SwanLab 之前,请确保您的机器满足以下最低系统要求:

  • CPU >= 2核
  • 内存 >= 4GB
  • 存储空间 >= 20GB

SwanLab 私有化部署版,需要使用 Docker Compose 进行安装与部署(暂不支持K8S部署),请根据你的操作系统,对表下面的表格选择正确的Docker及compose版本。

如果你已经安装了Docker,请跳过这一步。

操作系统软件解释
macOS 10.14 或更高版本Docker Desktop将 Docker 虚拟机 (VM) 设置为至少使用 2 个虚拟 CPU (vCPU) 和 8 GB 初始内存。否则,安装可能会失败。有关更多信息,请参阅Mac 版 Docker Desktop 安装指南
Windows(启用了WSL 2)Docker Desktop我们建议将源代码和其他与 Linux 容器绑定的数据存储在 Linux 文件系统中,而不是 Windows 文件系统中。有关更多信息,请参阅在 Windows 上使用 WSL 2 后端的 Docker Desktop 安装指南
LinuxDocker 19.03 或更高版本 Docker Compose 1.28 或更高版本有关如何安装Docker和Docker Compose 的更多信息,请参阅Docker 安装指南Docker Compose 安装指南

如果你还未安装Docker,可以运行我们提供的安装脚本

1. 克隆仓库

使用Git克隆self-hosted仓库:

bash
git clone https://github.com/SwanHubX/self-hosted.git
cd self-hosted

2. 一键脚本安装

如果你是Windows系统,请开启WSL2进行安装

默认的安装脚本在docker/install.sh,直接执行即可一键安装所有需要的容器以及执行初始化配置。

bash
cd ./docker
./install.sh

默认脚本链接的镜像源在中国,所以中国地区的下载速度非常快!

如果你需要使用 DockerHub 作为镜像源,则可以使用下面的脚本进行安装:

bash
./install-dockerhub.sh

3. 激活主账号

SwanLab社区版默认会使用8000端口,如果你使用的是默认配置,那么可以直接访问:http://localhost:8000,就可以访问到SwanLab社区版。

也有可能社区版部署在了其他端口,请打开 Docker Desktop,找到traefik容器旁边的port映射,比如64703:80,那么你应该访问http://localhost:64703

现在,你需要激活你的主账号。激活需要1个License,个人使用可以免费在SwanLab官网申请一个,位置在 「设置」-「账户与许可证」。

拿到License后,回到激活页面,填写用户名、密码、确认密码和License,点击激活即可完成创建。

4. 开始你的第一个实验

在Python SDK完成登录:

bash
swanlab login --host <IP地>

如果你之前登录过swanlab,想要重新登录,请使用:
swanlab login --host <IP地址> --relogin

按回车,填写API Key,完成登录。之后你的SwanLab实验将会默认传到私有化部署的SwanLab上。


测试脚本:

bash
import swanlab
import random

# 创建一个SwanLab项目
swanlab.init(
    # 设置项目名
    project="my-awesome-project",
    
    # 设置超参数
    config={
        "learning_rate": 0.02,
        "architecture": "CNN",
        "dataset": "CIFAR-100",
        "epochs": 10
    }
)

# 模拟一次训练
epochs = 10
offset = random.random() / 5
for epoch in range(2, epochs):
  acc = 1 - 2 ** -epoch - random.random() / epoch - offset
  loss = 2 ** -epoch + random.random() / epoch + offset

  # 记录训练指标
  swanlab.log({"acc": acc, "loss": loss})

# [可选] 完成训练,这在notebook环境中是必要的
swanlab.finish()

运行后在网页查看实验: