广大工具
我很乐意协助在Vast.ai、Runpod.io、CUDO Compute和TensorDock上部署,并提供持续支持。 您可以在Discord上找到我,Etherion#0700
目标是建立一个可与Vast.ai一起使用的工具列表。 这些工具是免费使用、修改和分发的。如果您发现这很有帮助并想捐赠,可以向以下钱包发送捐款。
BTC 15qkQSYXP2BvpqJkbj2qsNFb6nd7FyVcou
XMR 897VkA8sG6gh7yvrKrtvWningikPteojfSgGff3JAUs3cu7jxPDjhiAZRdcQSYPE2VGFVHAdirHqRZEpZsWyPiNK6XPQKAg
RVN RSgWs9Co8nQeyPqQAAqHkHhc5ykXyoMDUp
USDT(ETH ERC20) 0xa5955cf9fe7af53bcaa1d2404e2b17a1f28aac4f
Paypal PayPal.Me/cryptolabsZA
目录
- Vast主机安装指南
- 自验测试
- Speedtest-cli修复程序for Vast
- 分析仪表盘
- 监控您的Nvidia 3000/4000 Core、GPU Hotspot和Vram温度
- 解决使用Ubuntu 22和24时的nvml错误
- 删除持续出现的红色错误消息
- 内存超频
- 超频监控
- 使用Python基准测试在Vast上压力测试RTX3090 GPUs
- Telegram-Vast-Uptime-Bot
- 根据挖矿收益自动更新主机列表价格
- Vast上的后台作业或闲置作业
- 如果您有无头系统,设置风扇速度
- 删除unattended-upgrades软件包
- 如何更新主机
- 如何将您的Vast docker驱动程序移到另一个驱动器
- 将/var/lib/docker备份到网络上的另一台机器
- 使用VNC连接到正在运行的实例以查看应用程序的GUI
- 在Vastai上设置3D加速桌面web浏览器
- 有用的命令
- 如何为网络上的系统设置Docker registry
- Vast.ai 命令行界面(vastcli): 该工具用于与Vast.ai平台交互。
- Vast.ai 列表: 机器应该列在Vast市场上。
- Ubuntu OS: 脚本设计用于运行在Ubuntu 20.04或更新版本上。
设置和安装
-
下载和设置
vastcli
:- 使用以下命令下载Vast.ai CLI工具:
wget https://raw.githubusercontent.com/vast-ai/vast-python/master/vast.py -O vast chmod +x vast
- 设置您的Vast.ai API密钥:
./vast set api-key 6189d1be9f15ad2dced0ac4e3dfd1f648aeb484d592e83d13aaf50aee2d24c07
- 使用以下命令下载Vast.ai CLI工具:
-
下载 autoverify_machineid.sh:
- 使用wget将autoverify_machineid.sh下载到您的本地机器:
wget https://github.com/jjziets/VastVerification/releases/download/0.3-beta/autoverify_machineid.sh
- 使用wget将autoverify_machineid.sh下载到您的本地机器:
-
使脚本可执行:
- 更改主要脚本的权限以使它们可执行:
chmod +x autoverify_machineid.sh
- 更改主要脚本的权限以使它们可执行:
-
依赖
- 运行以下命令安装所需的软件包
apt update apt install bc jq
使用 ./autoverify_machineid.sh
-
检查机器要求:
./autoverify_machineid.sh
脚本旨在测试单个机器是否满足验证的最低要求。这对于想要验证自己的机器的主机很有用。- 要通过其
machine_id
测试特定机器,请使用以下命令:
将./autoverify_machineid.sh <machine_id>
<machine_id>
替换为要测试的机器的实际ID。
-
忽略要求检查:
./autoverify_machineid.sh --ignore-requirements <machine_id>
该命令无视最低要求条件运行对该机器的测试。
监控和结果
-
进度和结果日志:
- 该脚本记录测试的进度和结果。
- 成功结果和通过要求的机器将记录在
Pass_testresults.log
中。 - 未满足要求或在测试过程中遇到错误的机器将记录在
Error_testresults.log
中。
-
理解日志:
Pass_testresults.log
: 此文件包含成功通过所有测试的机器的条目。Error_testresults.log
: 此文件包含未满足最低要求或在测试过程中遇到错误的机器的条目。
使用示例
以下是您可以运行 autoverify_machineid.sh
脚本来测试机器 ID 为 10921 的机器的方法:
./autoverify_machineid.sh 10921
问题排查
- API密钥问题: 确保您的API密钥使用
./vast set api-key <your-api-key>
正确设置。 - 权限被拒: 如果遇到权限问题,请确保脚本文件具有可执行权限(
chmod +x <script_name>
)。 - 连接问题: 验证您的网络连接,并确保Vast.ai CLI可以与Vast.ai服务器通信。
总结
通过遵循此指南,您将能够使用 ./autoverify_machineid.sh
脚本测试Vast.ai市场上的单个机器。此过程有助于确保机器满足GPU和系统性能的要求,使其成为进一步验证和在市场上使用的候选机器。
Speedtest-cli修复广阔
如果您的机器无法正确显示其上传和下载速度。 组合
bash -c "sudo apt-get install curl -y && sudo curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash && sudo apt-get install speedtest -y && sudo apt install python3 -y && cd /var/lib/vastai_kaalia/latest && sudo mv speedtest-cli speedtest-cli.old && sudo wget -O speedtest-cli https://raw.githubusercontent.com/jjziets/vasttools/main/speedtest-cli.py && sudo chmod +x speedtest-cli"
或者逐步
sudo apt-get install curl
sudo curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest -y
sudo apt install python3 -y
cd /var/lib/vastai_kaalia/latest
sudo mv speedtest-cli speedtest-cli.old
sudo wget -O speedtest-cli https://raw.githubusercontent.com/jjziets/vasttools/main/speedtest-cli.py
sudo chmod +x speedtest-cli
这更新了您的速度测试到新版本并翻译了输出,以便Vast Demon可以使用它。 如果现在速度较慢,请按照此操作
## 如果从先前的bintray安装说明迁移,请先...
# sudo rm /etc/apt/sources.list.d/speedtest.list
# sudo apt-get update
# sudo apt-get remove speedtest -y
## 其他非官方二进制文件将与Speedtest CLI冲突
# 示例如何使用apt-get删除
# sudo apt-get remove speedtest-cli
sudo apt-get install curl
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest
分析仪表板
Prometheus Grafana监控系统,发送警报并跟踪与您的设备和收益及租赁相关的所有指标。 https://github.com/jjziets/DCMontoring
解决在使用Ubuntu 22和24时的nvml错误
如果您在22,24和nvml错误上使用Vast安装程序时遇到问题,请运行下面的脚本 这个脚本基于Bo26fhmC5M,所以感谢他
sudo wget https://raw.githubusercontent.com/jjziets/vasttools/main/nvml_fix.py
sudo python nvml_fix.py
删除持久性红色错误消息
如果您的机器上有一个红色的错误消息,您已经确认它已被解决。删除/var/lib/vastai_kaalia/kaalia.log并重新启动可能会有帮助
sudo rm /var/lib/vastai_kaalia/kaalia.log
sudo systemctl restart vastai
监控您的Nvidia 3000/4000 Core、GPU Hotspot和Vram温度
如果您不想设置分析仪表板,只想看到GPU上的所有温度,那么您可以使用下面的工具
sudo wget https://github.com/jjziets/gddr6_temps/raw/master/nvml_direct_access
sudo chmod +x nvml_direct_access
sudo ./nvml_direct_access
内存OC
设置RTX 3090的OC 需要以下内容
在主机上运行以下命令:
sudo apt-get install libgtk-3-0 && sudo apt-get install xinit && sudo apt-get install xserver-xorg-core && sudo update-grub && sudo nvidia-xconfig -a --cool-bits=28 --allow-empty-initial-configuration --enable-all-gpus
wget https://raw.githubusercontent.com/jjziets/vasttools/main/set_mem.sh
sudo chmod +x set_mem.sh
sudo ./set_mem.sh 2000 # 这将在所有GPU上将内存OC设置为+1000mhs。您可以在某些GPU上使用3000,这将给出1500mhs OC。
OC监控
设置监控程序,该程序会根据正在运行的程序改变内存OC。它设计用于RTX3090,目前针对ethminer。 它需要在根目录下运行set_mem.sh和ocmonitor.sh。
wget https://raw.githubusercontent.com/jjziets/vasttools/main/ocminitor.sh
sudo chmod +x ocminitor.sh
sudo ./ocminitor.sh # 我建议在tmux或screen中运行此程序,以便在关闭ssh连接时它会查找ethminer,如果找到它,它会根据您的选择设置OC。您还可以使用nvidia-smi -pl 350设置功率限制
为了在重启时加载,请使用以下crontab
sudo (crontab -l; echo "@reboot screen -dmS ocmonitor /home/jzietsman/ocminitor.sh") | crontab - #将用户替换为您的用户
使用这个基于Python的RTX3090基准测试在广泛进行应力测试
挖掘不会像Python工作负载那样压力你的系统,所以这也是一个很好的测试。 https://github.com/jjziets/pytorch-benchmark-volta 以下是英文源文本的中文翻译:
可以在Docker镜像jjziets/vastai-benchmarks:latest中找到一套完整的压力测试 位于文件夹/app/下:
stress-ng - CPU 压力测试
stress-ng - 硬盘压力测试
stress-ng - 内存压力测试
sysbench - 内存延迟和速度基准测试
dd - 硬盘速度基准测试
Hashcat - 基准测试
bandwithTest - GPU 带宽基准测试
pytorch - Pytorch DL 基准测试
#测试或Bash界面
sudo docker run --shm-size 1G --rm -it --gpus all jjziets/vastai-benchmarks /bin/bash
apt update && apt upgrade -y
./benchmark.sh
#使用默认设置运行 结果将保存到./output。
sudo docker run -v ${PWD}/output:/app/output --shm-size 1G --rm -it --gpus all jjziets/vastai-benchmarks
使用参数SLEEP_TIME/BENCH_TIME运行
sudo docker run -v ${PWD}/output:/app/output --shm-size 1G --rm -it -e SLEEP_TIME=2 -e BENCH_TIME=2 --gpus all jjziets/vastai-benchmarks
*基于leona / vast.ai-tools
Telegram-Vast-Uptime-Bot
这是一组用于监控机器崩溃的脚本。在您的Vast机器上运行客户端,在远程机器上运行服务器。如果在超时(默认12秒)内未收到心跳,您将收到Telegram通知。 https://github.com/jjziets/Telegram-Vast-Uptime-Bot
根据挖矿收益自动更新主机列表价格。
基于RTX 3090 120Mhs for eth。它设置了我的2个主机的价格。 它与一个定制的Vast-cli一起工作,可以在这里找到https://github.com/jjziets/vast-python/blob/master/vast.py 经理在这里https://github.com/jjziets/vasttools/blob/main/setprice.sh
这应该在VPS上运行,而不是在主机上。不要通过在主机上使用它来暴露您的Vast API密钥。
wget https://github.com/jjziets/vast-python/blob/master/vast.py
sudo chmod +x vast.py
./vast.py set api-key UseYourVasset
wget https://github.com/jjziets/vasttools/blob/main/setprice.sh
sudo chmod +x setprice.sh
用于Vast的后台作业或空闲作业。
管理空闲作业的最佳方式是通过vast cli。据我所知,GUI设置作业已经坏掉了。所以要设置一个空闲作业,请遵循以下步骤。您将需要下载vast cli并运行以下命令。 这个想法是将自己作为一个可中断的工作来出租。vast cli允许您为所有GPU设置一个空闲作业,或者为每个实例设置一个GPU。您还可以设置SSH连接方法或任何其他方法。 转到 https://cloud.vast.ai/cli/ 并安装您喜欢的cli版本。
设置您的帐户密钥,以便您可以使用vast cli。您可以从您的帐户页面获取此密钥。
./vast set api-key API_KEY
您可以使用我的SetIdleJob.py脚本,根据您机器上设置的最低价格来设置您的空闲作业。
wget https://raw.githubusercontent.com/jjziets/vasttools/main/SetIdleJob.py
这是我如何采矿到nicehash的示例
python3 SetIdleJob.py --args 'env | grep _ >> /etc/environment; echo "starting up"; apt -y update; apt -y install wget; apt -y install libjansson4; apt -y install xz-utils; wget https://github.com/develsoftware/GMinerRelease/releases/download/3.44/gminer_3_44_linux64.tar.xz; tar -xvf gminer_3_44_linux64.tar.xz; while true; do ./miner --algo kawpow --server stratum+tcp://kawpow.auto.nicehash.com:9200 --user 3LNHVWvUEufL1AYcKaohxZK2P58iBHdbVH.${VAST_CONTAINERLABEL:2}; done'
或完整命令,如果你不想使用默认值
python3 SetIdleJob.py --image nvidia/cuda:12.4.1-runtime-ubuntu22.04 --disk 16 --args 'env | grep _ >> /etc/environment; echo "starting up"; apt -y update; apt -y install wget; apt -y install libjansson4; apt -y install xz-utils; wget https://github.com/develsoftware/GMinerRelease/releases/download/3.44/gminer_3_44_linux64.tar.xz; tar -xvf gminer_3_44_linux64.tar.xz; while true; do ./miner --algo kawpow --server stratum+tcp://kawpow.auto.nicehash.com:9200 --user 3LNHVWvUEufL1AYcKaohxZK2P58iBHdbVH.${VAST_CONTAINERLABEL:2}; done' --api-key b149b011a1481cd852b7a1cf1ccc9248a5182431b23f9410c1537fca063a68b1
通过使用实例页面上的日志来排除您的bash -c命令的故障
或者,您可以使用以下命令对自己进行出租,然后登录并加载您想要运行的内容。确保将您的进程添加到onstart.sh 首先找到您的机器ID
./vast search offers "machine_id=14109 verified=any gpu_frac=1 " # gpu_frac=1 将给您所有GPU的实例。
或者
./vast search offers -i "machine_id=14109 verified=any min_bid>0.1 num_gpus=1" # 它将为您提供一个GPU的实例
一旦你有了offe_id。并且在这种情况下,使用-i开关的搜索将为你提供一个可中断的instance_id
假设您想要使用lolminer进行挖矿
./vast create instance 9554646 --price 0.2 --image nvidia/cuda:12.0.1-devel-ubuntu20.04 --env '-p 22:22' --onstart-cmd 'bash -c "apt -y update; apt -y install wget; apt -y install libjansson4; apt -y install xz-utils; wget https://github.com/Lolliedieb/lolMiner-releases/releases/download/1.77b/lolMiner_v1.77b_Lin64.tar.gz; tar -xf lolMiner_v1.77b_Lin64.tar.gz -C ./; cd 1.77b; ./lolMiner --algo ETCHASH --pool etc.2miners.com:1010 --user 0xYour_Wallet_Goes_Here.VASTtest"' --ssh --direct --disk 100
它将以0.2的价格启动该实例。
./vast show instances # 将给出实例列表
./vast change bid 9554646 --price 0.3 # 这将把该实例的价格改为0.3
如果您有无头系统,设置风扇速度。
这里有一个仓库,里面有两个程序和一些脚本,您可以用它们来管理您的风扇 https://github.com/jjziets/GPU_FAN_OC_Manager/tree/main
bash -c "wget https://github.com/jjziets/GPU_FAN_OC_Manager/raw/main/set_fan_curve; chmod +x set_fan_curve; CURRENT_PATH=\$(pwd); nohup bash -c \"while true; do \$CURRENT_PATH/set_fan_curve 65; sleep 1; done\" > output.txt & (crontab -l; echo \"@reboot screen -dmS gpuManger bash -c 'while true; do \$CURRENT_PATH/set_fan_curve 65; sleep 1; done'\") | crontab -"
移除unattended-upgrades软件包
如果您的系统在Vast运行时或更糟的是在客户租用时进行更新,您可能会被取消验证或禁止。建议您只在系统未被租用和下架时进行更新和升级。最好是设置您的列表结束日期,并在那个阶段进行更新。 要停止unattended-upgrades,请运行以下命令。
sudo apt purge --auto-remove unattended-upgrades -y
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl mask apt-daily-upgrade.service
sudo systemctl disable apt-daily.timer
sudo systemctl mask apt-daily.service
如何更新主机。
当系统空闲并下架时,运行以下命令。vast demon和docker服务已停止。升级Nvidia驱动程序也是一个好主意。如果您不这样做,并且升级会破坏某个软件包,您可能会被取消验证甚至被Vast禁止。
bash -c ' sudo systemctl stop vastai; sudo systemctl stop docker.socket; sudo systemctl stop docker; sudo apt update; sudo apt upgrade -y; sudo systemctl start docker.socket ; sudo systemctl start docker; sudo systemctl start vastai'
把庞大的 Docker 驱动器移动到另一个驱动器
如何将庞大的 Docker 驱动器移动到另一个驱动器
这个指南说明了如何备份现有驱动器上的 vastai Docker 数据,并将其转移到新驱动器上。在本例中,目标驱动器是 RAID 驱动器 /dev/md0。
前提条件:
- 没有客户端在运行,你已经从 vast 市场上退出。
- Docker 数据存在于当前驱动器上。
步骤:
- 安装所需工具:
sudo apt 安装 pv pixz
- 停止并禁用相关服务:
sudo systemctl 停止 vastai docker.socket docker sudo systemctl 禁用 vastai docker.socket docker
- 备份 Docker 目录:
创建
/var/lib/docker
目录的压缩备份。确保操作系统驱动器上有足够的空间存放该备份。或者将数据转移到备份服务器。参见 https://github.com/jjziets/vasttools/blob/main/README.md#backup-varlibdocker-to-another-machine-on-your-network
注意:sudo tar -c -I 'pixz -k -1' -f ./docker.tar.pixz /var/lib/docker | pv #你可以将 ./ 更改为目标目录
pixz
利用多核进行更快的压缩。 - 卸载 Docker 目录:
如果你计划关闭并安装新驱动器:
sudo umount /var/lib/docker
- 更新
/etc/fstab
: 禁止在启动时自动挂载当前 Docker 目录,以防止启动问题:
通过在行首添加sudo nano /etc/fstab
#
来注释掉与/var/lib/docker
相关的行。 - 分区新驱动器:
(根据您的系统调整设备名称。本指南以
/dev/md0
作为 RAID 驱动器,以/dev/nvme0n1
作为 NVMe 驱动器为例。)sudo cfdisk /dev/md0
- 使用 XFS 格式化新分区:
sudo mkfs.xfs -f /dev/md0p1
- 检索 UUID:
你需要 UUID 来更新
/etc/fstab
。sudo xfs_admin -lu /dev/md0p1
- 使用新驱动器更新
/etc/fstab
:
添加以下行(用你检索到的 UUID 替换):sudo nano /etc/fstab
UUID="YOUR_UUID_HERE" /var/lib/docker xfs rw,auto,pquota,discard,nofail 0 0
- 挂载新分区:
确认挂载:sudo mount -a
确保df -h
/dev/md0p1
(或相应的设备名称)已挂载到/var/lib/docker
。 - 恢复 Docker 数据:
导航到根目录:
解压缩并恢复:确保将用户更改为相关名称cd /
sudo cat /home/user/docker.tar.pixz | pv | sudo tar -x -I 'pixz -d -k'
- 启用服务:
sudo systemctl enable vastai docker.socket docker
- 重启:
sudo reboot
重启后:
检查所需驱动器是否已挂载到 /var/lib/docker
,并确保 vastai
正在运行。
将 /var/lib/docker
备份到您的网络上的另一台机器
如果你想将 Docker 设置迁移到另一台机器,无论是更换驱动器还是设置 RAID,请遵循此指南。在这个例子中,我们假设备份服务器的 IP 地址是 192.168.1.100
。
在备份服务器上设置:
- 临时启用 Root SSH 登录:
在备份过程中,特别是在传输像压缩的 Docker 数据这样的大文件时,确保 SSH 通信不间断非常重要。
a. 打开 SSH 配置:
b. 找到并将行:sudo nano /etc/ssh/sshd_config
更改为:PermitRootLogin no
c. 重新加载 SSH 配置:PermitRootLogin yes
sudo systemctl restart sshd
在源机器上设置:
- 生成 SSH 密钥并将其传输到备份服务器:
a. 创建 SSH 密钥:
b. 将 SSH 密钥复制到备份服务器:sudo ssh-keygen
sudo ssh-copy-id -i ~/.ssh/id_rsa root@192.168.1.100
- 禁用 Root 密码验证:
确保只能使用 SSH 密钥进行 root 登录,提高安全性。
a. 修改 SSH 配置:
b. 将行更改为:sudo nano /etc/ssh/sshd_config
c. 重新加载 SSH 配置:PermitRootLogin prohibit-password
sudo systemctl restart sshd
- 备份准备:
在备份之前,请确保相关服务已停止:
sudo systemctl stop docker.socket sudo systemctl stop docker sudo systemctl stop vastai sudo systemctl disable vastai sudo systemctl disable docker.socket sudo systemctl disable docker
- 备份过程:
这个过程压缩
/var/lib/docker
目录并将其传输到备份服务器。 a. 切换到 root 用户并安装必要的工具:
最好在 tmux 或 screen 中运行备份命令,这样如果您失去 ssh 连接,该过程仍将完成。 b. 执行备份:sudo su apt 安装 pixz apt 安装 pv
tar -c -I 'pixz -k -0' -f - /var/lib/docker | pv | ssh root@192.168.1.100 "cat > /mnt/backup/machine/docker.tar.pixz"
还原:
- 还原备份:
确保你的新驱动器已挂载到
/var/lib/docker
。 a. 切换到 root 用户:
b. 从备份还原:sudo su
cd / ssh root@192.168.1.100 "cat /mnt/backup/machine/docker.tar.pixz" | pv | sudo tar -x -I 'pixz -d -k'
- 重新激活服务:
sudo systemctl enable vastai sudo systemctl enable docker.socket sudo systemctl enable docker sudo reboot
重启后:确保您的目标驱动器已挂载到 /var/lib/docker
,并且 vastai
正在运行。
使用 VNC 连接到正在运行的实例以查看应用程序的 GUI
使用具有开放端口的实例 如果显示色深是 16 而不是 16 位,请尝试其他 VNC 查看器。 TightVNC 在 Windows 上可以正常工作
首先告诉 vast 允许分配一个端口。使用 -p 8081:8081 并勾选直接命令。
找到一个有开放端口的主机,然后对其进行租赁。最好是按需使用。转到客户端实例页面,等待连接按钮
使用 ssh 连接到实例。
运行以下命令。第二部分可以放在 onstart.sh 中,在重启时运行
bash -c 'apt-get update; apt-get -y upgrade; apt-get install -y x11vnc; apt-get install -y xvfb; apt-get install -y firefox;apt-get install -y xfce4;apt-get install -y xfce4-goodies'
export DISPLAY=:20
Xvfb :20 -screen 0 1920x1080x16 &
x11vnc -passwd TestVNC -display :20 -N -forever -rfbport 8081 &
startxfce4
要连接,请使用主机的 IP 和提供的端口。在本例中,它是 400010
然后享受桌面。不幸的是,这不是硬件加速的。所以没有游戏可以运行
在 vastai 的网络浏览器中设置 3D 加速桌面
我们将使用 ghcr.io/ehfd/nvidia-glx-desktop:latest 使用这些环境参数
-e TZ=UTC -e SIZEW=1920 -e SIZEH=1080 -e REFRESH=60 -e DPI=96 -e CDEPTH=24 -e VIDEO_PORT=DFP -e PASSWD=mypasswd -e WEBRTC_ENCODER=nvh264enc -e BASIC_AUTH_PASSWORD=mypasswd -p 8080:8080
查找系统有开放端口
![图像](https://yellow-cdn.veclightyear.com/ab5030c0/50ae0acb-0dbf-48d7-b475-f02d8d4ea04b.png)
加载完成后点击打开
![图像](https://yellow-cdn.veclightyear.com/ab5030c0/a788782b-d5fc-4323-ae2c-83ae3cca58a3.png)
用户名是 **user**,密码是您设置的 **mypasswd**
![图像](https://yellow-cdn.veclightyear.com/ab5030c0/b4731d5c-3c87-40fd-bd73-0057c5800f7d.png)
点击启动
![图像](https://yellow-cdn.veclightyear.com/ab5030c0/6c2fddc7-2efd-4d86-8661-21d695ba21c1.png)
Web浏览器中的3D加速桌面环境
![图像](https://yellow-cdn.veclightyear.com/ab5030c0/f7ddec1c-0e13-41cd-9a17-195c4bace734.png)
## 如何为网络上的系统设置Docker Registry
这将减少来自公共IP的拉取请求。 Docker对匿名登录限制每6小时100次拉取,这可以加快租赁的启动时间。
本指南提供了使用Docker Compose设置Docker注册表服务器以及配置Docker客户端使用此注册表的说明。
先决条件
Docker和Docker Compose已安装在您本地LAN上有大量快速存储的服务器上。
所有客户端机器上都已安装Docker。
设置Docker注册表服务器
如果尚未安装,请安装docker-compose。
sudo su curl -L "https://github.com/docker/compose/releases/download/v2.24.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose apt-get update && sudo apt-get install -y gettext-base
创建docker-compose.yml文件:
在您的服务器上创建一个名为docker-compose.yml的文件,内容如下:
version: '3' services: registry: restart: unless-stopped image: registry:2 ports: - 5000:5000 environment: - REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io - REGISTRY_STORAGE_DELETE_ENABLED="true" volumes: - data:/var/lib/registry volumes: data:
此配置设置了一个在端口5000上运行的Docker注册表服务器,并使用名为data的卷进行存储。
启动Docker注册表:
在包含docker-compose.yml文件的目录中运行以下命令:
sudo docker-compose up -d
此命令将以分离模式启动Docker注册表。
## 配置Docker客户端
要配置Docker客户端使用注册表,请在每台客户端机器上执行以下步骤:
编辑Docker守护进程配置:
运行以下命令将您的Docker注册表添加为Docker守护进程配置中的镜像:
echo '{ "runtimes": { "nvidia": { "path": "nvidia-container-runtime", "runtimeArgs": [] } }, "registry-mirrors": ["http://192.168.100.7:5000"] }' | sudo tee /etc/docker/daemon.json
如果空间有限,您可以将此清理任务作为一个cron作业运行
wget https://github.com/jjziets/vasttools/raw/main/cleanup-registry.sh chmod +x cleanup-registry.sh
将此行添加到您的crontab -e
0 * * * * /path/to/cleanup-registry.sh
将/path/to/替换为文件保存的位置。
将192.168.100.7:5000替换为您Docker注册表服务器的IP地址和端口。
重启Docker守护进程:
sudo systemctl restart docker
验证设置
要验证Docker注册表是否已正确设置,您可以尝试从注册表中拉取镜像:
docker pull 192.168.100.7:5000/your-image
将192.168.100.7:5000/your-image替换为适当的注册表URL和镜像名称。
## 有用的命令
"如果您设置了vast CLI,可以输入此
./vast show machines | grep "current_rentals_running_on_demand"
如果返回0,则是可中断租赁。
在提供后台运行日志的主机上运行命令
tail /var/lib/vastai_kaalia/kaalia.log -f
卸载vast
wget https://s3.amazonaws.com/vast.ai/uninstall.py sudo python uninstall.py