页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 4 当前 »

1、背景说明

1.1 问题描述

客户使用 ubuntu 24 版本操作系统,在进行AIchat安装时遇到如下问题导致无法正常安装,并且手动安装高版本docker也无法启动容器。

1)执行AIchat安装脚本报错异常如下:

2)手动安装docker后启动AIchat异常

1.2 环境信息

1.2.1 基础环境信息

序号

基础软件

版本信息

1操作系统及版本ubuntu 24
2CPU架构x86

2、AIchat安装脚本报错异常问题排查

2.1 使用 journalctl -xeu docker.service排查异常(看不出来问题)

2.2 使用dockerd启动查看异常

显示异常为“failed to start daemon: Devices cgroup isn't mounted

查看当前操作系统cgroup版本

#mount -l |grep cgroup

2.3 总结

AIchat安装包默认带有的docker 版本为 19,需要使用 cgroup1当前系统是 cgroup2所以docker导致无法启动。

解决方案有2个:

方案1:安装高版本的docker  (**建议使用**)

方案2:修改Ubuntu 操作系统配置把 cgroup2  调整为 cgroup1  (**慎重使用**)

3、手动安装docker后启动AIchat异常

单独使用docker run 命令运行容器也会出现异常,应该客户现场在使用AIchat安装失败后又安装高版本docker,虽然AIchat安装失败,但是相关配置docker文件已经拷贝到系统中,2个版本的文件影响了高版本docker运行所导致的问题。

4、解决方案

4.1 安装高版本的docker

4.1.1 访问 Docker 官方下载页面

https://download.docker.com/linux/ubuntu/dists/

4.1.2 根据 Ubuntu 24 的代号 noble和系统架构(如 amd64)选择以下docker安装包:

4.1.3 通过deb安装docker

把安装包上传到服务器一个文件夹中后执行以下命令进行docker的安装

#sudo dpkg -i *.deb

4.1.4 如果运行过AIchat的安装程序后再安装了高版本的docker

docker 再运行容器时就会以下异常:

需要先卸载高版本的docker并且清除对应的运行文件,然后按照4.2.3再重新安装即可,docker环境正常后再运行AIchat安装程序则可以正常启动。

#sudo apt-get purge docker-ce docker-ce-cli containerd.io
#sudo rm -rf /var/lib/docker
#sudo rm -rf /var/lib/containerd
#rm -rf /etc/docker
#rm -rf /run/docker
#rm -rf /run/containerd

4.2 修改Ubuntu 操作系统配置把 cgroup2  调整为 cgroup1 (慎重!!)

注:调整操作系统参数是不建议的一种方式,如果是poc或者测试环境可以进行尝试,如果是生产环境建议慎重操作。

卸载高版本docker 使用AIchat自带的docker 19,需要把操作系统配置把 cgroup2  调整为 cgroup1

4.2.1 修改grub文件

#vi /etc/default/grub
在文件末尾附加
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=0 systemd.unified_cgroup_hierarchy=0"

4.2.2 更新 GRUB

#update-grub

4.2.3 重启系统

#reboot

4.2.4 安装AIchat

此时可以正常使用Aichat安装脚本进行安装。

5、其他说明

5.1 停止docker服务

Ubunt系统直接使用systemctl stop docker 会有如下提示而导致无法停止

需要手动把docker.socket也停止,既需要执行如下2个停止命令:

#systemctl stop docker

#systemctl stop docker.socket

5.2 docker-compose.yml文件

高版本的docker需要使用带网络配置的docker-compose文件,具体配置如下:

1、所有组件添加下方关键字

    networks:
      smartbinla_nla_default:

例如:aiweb

2、mongo和redis还需要配置aliases

  2.1 mongo:
    networks:
      smartbinla_nla_default:
        aliases:
          - aimongo  
 
  2.2 redis:
    networks:
      smartbinla_nla_default:
        aliases:
          - airedis

例如:

3、配置文件结尾需要添加networks

networks:
  smartbinla_nla_default:

  • 无标签