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 服务必须可以使用端口
8080
、8081
和8008
。
部署
默认情况下,ClearML Server 以不受限制的访问权限启动。要限制 ClearML Server 访问,请按照安全页面中的说明进行操作。
部署服务器至少需要 8 GB 内存,建议 16 GB。
在 Linux 或 macOS 上启动 ClearML Server
-
安装 Docker。具体说明取决于操作系统
- Linux - 请参阅 适用于 Ubuntu 的 Docker。
- macOS - 请参阅 适用于 OS X 的 Docker。
-
验证 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. -
仅适用于 macOS,在 Docker Desktop 中将内存分配增加到
8GB
。- 在顶部状态栏中,单击 Docker 图标。
- 单击 Preferences > Resources > Advanced,然后将内存设置为至少
8192
。 - 单击 Apply。
-
仅适用于 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 -
增加 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
-
-
删除 ClearML Server 的所有先前安装。
这将清除所有现有的 ClearML SDK 数据库。
sudo rm -R /opt/clearml/
-
为数据库和存储创建本地目录。
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 -
仅适用于 macOS,执行以下操作
-
打开 Docker 应用。
-
选择 Preferences。
-
在 File Sharing 选项卡上,添加
/opt/clearml
。
-
-
根据操作系统授予对 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
-
-
下载 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
-
仅适用于 Linux,配置 ClearML Agent 服务
-
设置
CLEARML_AGENT_ACCESS_KEY
和CLEARML_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 -
-
使用下载的配置文件运行
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 .
如果需要,通过执行以下操作恢复数据和配置
-
验证备份文件是否存在。
-
用备份数据替换任何现有数据
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 -
根据操作系统授予对数据的访问权限
-
Linux
sudo chown -R 1000:1000 /opt/clearml
-
macOS
sudo chown -R $(whoami):staff /opt/clearml
-
下一步
为了跟踪您的实验和/或数据,clearml
包需要与您的服务器通信。有关将 ClearML SDK 连接到服务器的说明,请参阅ClearML 设置。