跳到主要内容

Linux 和 macOS

使用预构建的 Docker 镜像在 Linux 或 macOS 中部署 ClearML Server。

有关 ClearML docker 镜像(包括以前的版本),请参阅 https://hub.docker.com/r/allegroai/clearml。但是,不需要直接拉取 ClearML Docker 镜像。ClearML 提供了一个 docker-compose YAML 文件来完成此操作。此页面上的说明包含了 docker-compose 文件。

有关在 Linux 或 macOS 中升级 ClearML Server 的信息,请参见此处

重要

如果重新安装 ClearML Server,建议清除浏览器的 ClearML Server cookie。例如,对于 Firefox,请转到 Developer Tools > Storage > Cookies;对于 Chrome,请转到 Developer Tools > Application > Cookies,并删除 ClearML Server URL 下的所有 cookie。

先决条件

仅适用于 Linux 用户

  • Linux 发行版必须支持 Docker。有关详细信息,请参阅 Docker 文档
  • 以具有 sudo 权限的用户身份登录。
  • 在此安装中使用 bash 执行所有命令行指令。
  • ClearML Server 服务必须可以使用端口 808080818008

部署

警告

默认情况下,ClearML Server 以不受限制的访问权限启动。要限制 ClearML Server 访问,请按照安全页面中的说明进行操作。

内存要求

部署服务器至少需要 8 GB 内存,建议 16 GB。

在 Linux 或 macOS 上启动 ClearML Server

  1. 安装 Docker。具体说明取决于操作系统

  2. 验证 Docker CE 安装。执行命令

    docker run hello-world

    预期输出为

    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    To generate this message, Docker took the following steps:

    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64)
    3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
  3. 仅适用于 macOS,在 Docker Desktop 中将内存分配增加到 8GB

    1. 在顶部状态栏中,单击 Docker 图标。
    2. 单击 Preferences > Resources > Advanced,然后将内存设置为至少 8192
    3. 单击 Apply
  4. 仅适用于 Linux,安装 docker-compose。执行以下命令(有关详细信息,请参阅 Docker 文档中的 安装 Docker Compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
  5. 增加 Docker 中 Elasticsearch 的 vm.max_map_count。根据操作系统执行以下命令

    • Linux

      echo "vm.max_map_count=262144" > /tmp/99-clearml.conf
      sudo mv /tmp/99-clearml.conf /etc/sysctl.d/99-clearml.conf
      sudo sysctl -w vm.max_map_count=262144
      sudo service docker restart
    • macOS

      docker run --net=host --ipc=host --uts=host --pid=host --privileged --security-opt=seccomp=unconfined -it --rm -v /:/host alpine chroot /host
      sysctl -w vm.max_map_count=262144
  6. 删除 ClearML Server 的所有先前安装。

    这将清除所有现有的 ClearML SDK 数据库。

    sudo rm -R /opt/clearml/
  7. 为数据库和存储创建本地目录。

    sudo mkdir -p /opt/clearml/data/elastic_7
    sudo mkdir -p /opt/clearml/data/mongo_4/db
    sudo mkdir -p /opt/clearml/data/mongo_4/configdb
    sudo mkdir -p /opt/clearml/data/redis
    sudo mkdir -p /opt/clearml/logs
    sudo mkdir -p /opt/clearml/config
    sudo mkdir -p /opt/clearml/data/fileserver
  8. 仅适用于 macOS,执行以下操作

    1. 打开 Docker 应用。

    2. 选择 Preferences

    3. File Sharing 选项卡上,添加 /opt/clearml

  9. 根据操作系统授予对 Docker 的访问权限。

    • Linux

      sudo chown -R 1000:1000 /opt/clearml
      注意

      这假设容器进程以 UID 1000 和 GID 1000 身份运行。/opt/clearml 的所有权必须与容器内部使用的 UID 和 GID 匹配。如果容器以不同的用户或组身份运行,请相应地更新所有权,以确保它们可以访问挂载的目录。

    • macOS

      sudo chown -R $(whoami):staff /opt/clearml
  10. 下载 ClearML Server docker-compose YAML 文件

    sudo curl https://raw.githubusercontent.com/clearml/clearml-server/master/docker/docker-compose.yml -o /opt/clearml/docker-compose.yml
  11. 仅适用于 Linux,配置 ClearML Agent 服务

    • 设置 CLEARML_AGENT_ACCESS_KEYCLEARML_AGENT_SECRET_KEY 为机密字符串,以便服务 Agent 与 API 服务器进行身份验证。提供字符串值。

    • 如果未提供 CLEARML_HOST_IP,则 ClearML Agent 服务将使用 ClearML Server 的外部公共地址

    • 设置 CLEARML_AGENT_GIT_USER / CLEARML_AGENT_GIT_PASS,以便 ClearML Agent 服务可以访问私有仓库以运行服务任务

    export CLEARML_AGENT_ACCESS_KEY=generate_access_key_here
    export CLEARML_AGENT_SECRET_KEY=generate_secret_key_here
    export CLEARML_HOST_IP=server_host_ip_here
    export CLEARML_AGENT_GIT_USER=git_username_here
    export CLEARML_AGENT_GIT_PASS=git_password_here
  12. 使用下载的配置文件运行 docker-compose

    docker-compose -f /opt/clearml/docker-compose.yml up -d

服务器现在运行在 http://localhost:8080

端口映射

部署 ClearML Server 后,服务会暴露以下端口

  • Web 服务器在端口 8080
  • API 服务器在端口 8008
  • 文件服务器在端口 8081

重启

重启 ClearML Server Docker 部署

  • 执行以下命令停止并重启 Docker 容器

    docker-compose -f /opt/clearml/docker-compose.yml down
    docker-compose -f /opt/clearml/docker-compose.yml up -d

备份和恢复数据及配置

警告

在备份或恢复数据和配置之前停止服务器

本节中的命令是备份和恢复数据和配置的示例。

如果数据和配置文件夹位于 /opt/clearml 中,则将所有数据归档到 ~/clearml_backup_data.tgz,将配置归档到 ~/clearml_backup_config.tgz

sudo tar czvf ~/clearml_backup_data.tgz -C /opt/clearml/data .
sudo tar czvf ~/clearml_backup_config.tgz -C /opt/clearml/config .

如果需要,通过执行以下操作恢复数据和配置

  1. 验证备份文件是否存在。

  2. 用备份数据替换任何现有数据

    sudo rm -fR /opt/clearml/data/* /opt/clearml/config/*
    sudo tar -xzf ~/clearml_backup_data.tgz -C /opt/clearml/data
    sudo tar -xzf ~/clearml_backup_config.tgz -C /opt/clearml/config
  3. 根据操作系统授予对数据的访问权限

    • Linux

      sudo chown -R 1000:1000 /opt/clearml
    • macOS

      sudo chown -R $(whoami):staff /opt/clearml

下一步

为了跟踪您的实验和/或数据,clearml 包需要与您的服务器通信。有关将 ClearML SDK 连接到服务器的说明,请参阅ClearML 设置