由于此前项目在arm架构与x86架构下已经部署测试并投入客户现场使用,项目已趋于稳定阶段。有一客户指定sw64内核的国产服务器,网上对于sw64的资料少之又少,在踩了多个坑之后终于将项目运行起来,特此记录一下过程。
一、Docker环境准备
通过网络资料查询到申威提供的rpm包,下载docker进行安装。
Index of /NS/V10/V10SP1/os/adv/lic/base/sw_64/Packages/
下载Docker相关rpm包:docker-ce-cli-20.10.12.ce-2.ky10.sw_64.rpm、docker-ce-19.03.14.ce-3.ky10.sw_64.rpm、docker-compose-1.22.0-2.ky10.noarch.rpm
并下载所需要的环境包:device-mapper-1.02.150-7.ky10.sw_64.rpm、lvm2-2.02.181-7.ky10.sw_64.rpm
(1)安装alien
sudo apt-get install alien -y
(2)将下载的rpm文件通过alien进行安装,此处需指定--target=64,否则会有内核报错
cd $(pwd)/init
echo 进入目录:$(pwd)
sudo alien -i --scripts lvm2-2.02.181-7.ky10.sw_64.rpm --target=sw64
sudo alien -i --scripts device-mapper-1.02.150-7.ky10.sw_64.rpm --target=sw64
sudo alien -i --scripts docker-ce-cli-20.10.12.ce-2.ky10.sw_64.rpm --target=sw64
sudo alien -i --scripts docker-ce-19.03.14.ce-3.ky10.sw_64.rpm --target=sw64
(3)安装完成后启动docker,并验证是否安装成功
启动Docker服务
sudo systemctl start docker
开机自启
sudo systemctl enable docker.service
验证docker
docker version
(4)安装Docker-Compose
sudo alien -i --scripts docker-compose-1.22.0-2.ky10.noarch.rpm --target=sw64
sudo ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -version
(5)当前用户加入Docker组
sudo groupadd docker
sudo gpasswd -a $USER docker
sudo systemctl restart docker
至此Docker已成功安装,接下来需要准备所需要的镜像。
二、镜像准备
项目所需要的镜像有JDK1.8、MySQL5.7、Redis、Nginx、Nacos,通过查阅资料,找到一个大佬现成的几个镜像,但没有nacos,于是参考着资料自己构建了一个nacos镜像用于项目。
申威平台docker镜像使用方法_申威银河麒麟docker镜像-CSDN博客
通过docker pull拉取了redis6.2.6、nginx、mysql镜像,以及一个系统基础镜像(用于制作nacos镜像)
拉取DockerHub上的镜像,需接入代理(科学上网)
docker pull leechm/redis:6.2.6
docker pull leechm/nginx:1.16.1-v10
docker pull leechm/mysql:5.7.33
docker pull leechm/neokylin-sw:v10
(1)制作nacos镜像
通过docker run先进入到基础镜像中,在这步会一直报错,似乎seccomp与申威内核不太兼容,找不到有效的解决方案,直接先不设置策略启动。
docker run --security-opt seccomp=unconfined -it --restart=always --net=host -e TZ="Asia/Shanghai" -p 8848:8848 leechm/neokylin-sw:v10 /bin/bash
启动容器后,根据该镜像的描述,将yum源配置为外网。
https://hub.docker.com/r/leechm/neokylin-sw
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/neokylin.repo
通过yum安装jdk环境
yum list | grep jdk
yum install -y java-1.8.0-swjdk*
Github下载nacos1.4.2版本(高版本会有不兼容,如:rocksdb,如需高版本需要在sw64系统自行编译源代码生成动态库,试了一堆报错放弃了)
运行nacos下bin目录的启动脚本看看能不能启动,没有报错的话这个镜像就制作完成了。接下来导出镜像。
导出镜像记得加上标签。
docker save 4392e1a88c1f > sw64_nacos-server_1.4.2.tar sw64/nacos-server:1.4.2
docker save 9b95f11fe9ef > sw64_nginx_1.16.1.tar leechm/nginx:1.16.1-v10
docker save 032c088804f8 > sw64_mysql_5.7.33.tar leechm/mysql:5.7.33
docker save dc43d5720f2e > sw64_redis_6.2.6.tar leechm/redis:6.2.6
docker save 8c8a6cf174d6 > sw64_jdk_1.8.tar dataexa/jdk-sw:1.8
编写Docker-compose.yaml文件(涉密,略),运行测试一下项目。
尚存问题:Docker运行起来的容器一段时间会出现exited 137自动退出的问题,该问题还找不到解决方案。

514

被折叠的 条评论
为什么被折叠?



