以前基本上是在ubuntu上实现docker部署应用,最近新接了个项目,要求全采用国产操作系统。于是选择了跟linxu比较友好的统信国产操作系统。

一、系统安装、显卡驱动安装

1、系统安装

我们装的是服务器版本的1050d-AMD64,下载链接如下:统信UOS生态社区 - 打造操作系统创新生态

系统安装指导可参考:统信操作系统安装_统信系统安装_weixin_47016368的博客-CSDN博客

按F11进入选盘,从这里开始看起即可。

2、显卡驱动安装

系统装好后我们要装显卡驱动:我们用的是两张英伟达T4卡,下载链接如下:

官方驱动 | NVIDIA

参数选择如下:

在驱动所在的路径下直接

sudo bash ./XXX.run

然后一路上OK,确定即可。这里表扬下服务器版本的系统,装好直接可用,不用重启。

二、网络连接

服务器上有贴纸:

这个192.168.200.16是管理口的IP,业务口的IP需要自己设置。服务器一共三个网口,单独的是管理口,两个在一起的才是业务口,想连上网络要用业务口。因为我们装的是服务器版本,没有桌面的。只有命令行操作页面,所以有显示器的话完全可以直接接上显示器,鼠标键盘操作。如果通过管理口连接操作,需修改自己IP为192.168.200.1X(与默认同网段),ping192.168.200.16能ping通后,通过浏览器访问:192.168.200.16,输入账号密码均为ADMIN,然后即可登录管理后台

这里查询ip a 即可看业务口IP地址:

这里容易出个小问题,一开始厂家给我们设置的是自动获取IP地址,但是你用ip a和ifconfig eno2 都显示网络已连上,但是查不到IP地址的。这里可以通过nmtui进入网络设置

这里是键盘操作。把eno2编辑为我们需要的ip即可,注意设置自动连接,否则下次重启服务器还是不采用我们设置的ip。这里应该是有个bug的。

这里是空格键。

到这里我们终于把服务器eno2网口IP设置为10.168.1.143.这样可以通过ssh操作服务器。

三、安装docker和Nvidia-docker

1、docker安装

参考链接:使用二进制方式安装Docker-腾讯云开发者社区-腾讯云

长期使用安装工具进行安装docker,今天用二进制方式手动安装一下docker环境。

二进制包下载地址:https://download.docker.com/linux/static/stable/x86_64/

#解压

tar xf docker-20.10.9.tgz (按你实际下载的版本号修改)

#拷贝二进制文件

cp docker/* /usr/bin/

#创建containerd的service文件,并且启动

 
 
cat >/etc/systemd/system/containerd.service <<EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target
[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=1048576
TasksMax=infinity
OOMScoreAdjust=-999
[Install]
WantedBy=multi-user.target

EOF

复制代码

 
 

systemctl enable --now containerd.service

准备docker的service文件

#准备docker的service文件

 
 
cat > /etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target

EOF

#准备docker的socket文件

 
 
cat > /etc/systemd/system/docker.socket <<EOF
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF

复制代码

启动验证

#创建docker组

 
 

groupadd docker

#启动docker

 
 

systemctl enable --now docker.socket && systemctl enable --now docker.service

#验证

 
 

docker info

复制代码

创建docker配置文件

 
 
cat >/etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

复制代码

 
 

systemctl restart docker

 
 

输入docker ps -a已经可以查到。

2、安装Nvidia-docker

docker在安装run的时候遇到不能用gpu资源的报错解决:

安装Nvidia-docker2,让容器运行的时候用上GPU资源

参考链接:【nvidia-docker】nvidia-docker安装及报错解决_docker nvidia_单线程zz的博客-CSDN博客

安装源命令

 
 

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)       && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg       && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list |             sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' |             sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

此处会报错:gpg: 找不到有效的 OpenPGP数据

可能原因:不能访问 https://nvidia.github.io/libnvidia-container/gpgkey

解决:打开此网址,会自动下载 gpgkey 文件,之后 cd 到下载路径下运行

sudo apt-key add gpgkey

成功后会输出 OK

再次运行上面安装源命令,依然报错,忽略,实际已经OK

sudo apt-get update

sudo apt-get install -y nvidia-docker2

这时候已经可以正常安装。

到这里可以开始正常运行docker

拉好镜像放到目录下:

(1)解压获取镜像:

sudo docker load < rstdetect_v1.9.3.autorun.tar

(2)安装:

sudo docker run --shm-size=16G --runtime=nvidia -itd -p 19008:8080 -p 16379:16379 rstdetect:v1.9.3.autorun

如果要对端口进行修改,加-p修改第一个8080

如下图,把端口改为19008

说明:itd是后台说明。已经设置自启动,并把RstDetect放到容器里面,否则还要映射-v

-v就是指路径映射的,宿主机的路径映射到docker里的路径,如果没有路径映射,你进入docker之后,就看不到宿主机上的镜像了

如果要映射位置加 -v /mnt:/mnt

四、关闭内核更新

参考:Linux 系统禁止内核自动更新_linux关闭自动更新_丶看我会发光的博客-CSDN博客

查看当前使用的内核

uname -a 
uname -r

查看安装了哪些内核

sudo dpkg --get-selections |grep linux-image

切换内核

#5.15.0-56是当前内核 5.13.0-30是想用的内核

sudo sed -i 's/5.15.0-56/5.13.0-30/g' /boot/grub/grub.cfg

删除多余内核

sudo apt-get remove linux-image-unsigned-5.15.0-56-generic

禁止系统内核自动更新

sudo apt-mark hold linux-image-5.13.0-30-generic sudo apt-mark hold linux-modules-extra-5.13.0-30-generic

五、可能遇到其他问题:

1、sudo: 无法解析主机:

出现原因以及解决办法

今天在使用linux终端命令的时候出现了这么一句话:sudo: 无法解析主机 :xxxxx

原因:修改了主机的ubuntu设备名称,后面没有配置好hosts文件,导致linux无法解析到您的主机地址

sudo: 无法解析主机:xxxxxx

解决方案:我在网上也查了一下,发现这个问题很简单,就是配置一下hosts文件就可以解决,具体操作如下:

sudo vim /etc/hosts

把下面的数字后面的xxxx修改成你现在的设备名称保存就可以了。

127.0.1.1 xxxx

2、-bash: yum:未找到命令

sudo apt-get install yum

3、22端口用不了,ssh连不上:

 
 

cd /home/rst/.ssh/known_hosts

把known_hosts改名做备份即可。

 
 

mv known_hosts known_hosts_old

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐