求助:安装docker时,为什么compose.yml的参数配置不起作用

[复制链接]
查看: 2651   回复: 8
发表于 2024-6-23 19:44:36 | 显示全部楼层 |阅读模式
想装虚拟群晖(https://github.com/vdsm/virtual-dsm)
下载compose.yml到小鸡上/vdsm/virtual-dsm/,compose.yml中默认RAM是1G,修改为512M,修改的地方:RAM_SIZE: "512M",保存修改。

然后运行docker-compose up,显示 ERROR: Your configured RAM_SIZE of 1 GB is too high for the 0 GB of memory available, please set a lower value.
表明RAM设置不起作用,这是什么原因?

-----------------后续---------------------
用4.35版本,默认512M,不用配置yml,通过 以下命令安装在甲骨文AMD(ARM不支持)。
1、sudo apt install cpu-checker
sudo kvm-ok
检测支持KVM才能继续
2、安装docker环境
3、docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 vdsm/virtual-dsm:4.35

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

发表于 2024-6-23 19:45:02 | 显示全部楼层
很可能你的内存不够,在1台1C1G的机器上复现了,你没注意到这行吗
dsm  | ❯ CPU:  | RAM: 0/1 GB

在3C4G的机器上,无论设置1G还是512M都是可以启动的
dsm  | ❯ CPU: Intel Xeon CPU E5 2683 v4 | RAM: 3/4 GB | DISK: 32 GB (ext4) |


官方的reset.sh里是这样的
RAM_AVAIL=$(free -b | grep -m 1 Mem: | awk '{print $7}')
RAM_TOTAL=$(free -b | grep -m 1 Mem: | awk '{print $2}')
RAM_SIZE=$(echo "${RAM_SIZE^^}" | sed 's/MB/M/g;s/GB/G/g;s/TB/T/g')
RAM_WANTED=$(numfmt --from=iec "$RAM_SIZE")
AVAIL_GB=$(( RAM_AVAIL/1073741824 ))


要调整更精准的调整这个判断,要去提issue改
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-6-23 19:45:12 | 显示全部楼层
我记得这玩意,比较看代码缩进,之前遇到过一次不生效,就是因为编辑器的原因把缩进吃掉了,导致出错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-6-23 19:45:25 | 显示全部楼层
谢谢答复,用的甲骨文AMD,内存的确只有1G,我看virtual-dsm以前的版本是可以512M,当前版本默认1G,描述里面提到可以修改RAM。可能是最低要1G?我用以前的版本试试。
-------小鸡差数如下----------
CPU架构: x86_64
CPU型号: AMD EPYC 7J13 64-Core Processor
CPU核心数: 2
CPU占用:  18.9%
物理内存: 436.41/980.67 MB (44.50%)
虚拟内存: 64MB/975MB (6%)
硬盘占用: 2.0G/96G (3%)
回复 支持 反对

使用道具 举报

发表于 2024-6-23 19:45:44 | 显示全部楼层
arm机器内存大,能用吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-6-23 19:46:03 | 显示全部楼层
根据关键字在库里找了下
报错的判断逻辑在这里
https://github.com/vdsm/virtual-dsm/blob/7c392082b190a6626e0d9beaf4c6f4d2bbce1579/src/config.sh#L23
https://github.com/vdsm/virtual-dsm/blob/7c392082b190a6626e0d9beaf4c6f4d2bbce1579/src/reset.sh#L73

if [[ "$RAM_CHECK" != [Nn]* ]]; then

  RAM_AVAIL=$(free -b | grep -m 1 Mem: | awk '{print $7}')
  AVAIL_GB=$(( RAM_AVAIL/1073741824 ))

  if (( (RAM_WANTED + RAM_SPARE) > RAM_AVAIL )); then
    error "Your configured RAM_SIZE of $WANTED_GB GB is too high for the $AVAIL_GB GB of memory available, please set a lower value."
    exit 17

RAM_WANTED + RAM_SPARE) > RAM_AVAIL
如果想要设置的内存,加上RAM_SPARE,大于free -b里设置的内存,就会报这个错。

RAM_SPARE官方设置的是500000000,差不多500M,基础就有512+500了,你1G内存一定不够的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-6-23 19:46:18 | 显示全部楼层
arm下能docker运行x86的黑群晖?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-6-23 19:47:07 | 显示全部楼层
甲骨文的arm不支持,可以用以下命令测试是否支持
How do I verify if my system supports KVM?
To verify that your system supports KVM, run the following commands:
sudo apt install cpu-checker
sudo kvm-ok
回复 支持 反对

使用道具 举报

发表于 2024-6-23 19:47:55 | 显示全部楼层
用的4.35版本,默认512M,内存勉强够用
docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 vdsm/virtual-dsm:4.35

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则