(一)环境准备

# 华为鲲鹏服务器-学习笔记(基本命令和Docker部分) 笔记分享地址:[https://easydoc.net/s/54024151/YdjAf8qr/VGCwx0S0](https://easydoc.net/s/54024151/YdjAf8qr/VGCwx0S0) ---- ## 前言 1、Docker能解决开发、测试、部署环节中的环境一致性问题(所以推荐Docker方式搭建系统环境,且将来可使用K8S实现负载) 2、Docker的安装需要采用内网离线方式部署,大家要明白,实际的生产环境的服务器或者桌面PC是不可以接入互联网的,所以我们在一开始就尽可能要想办法将系统的各种依赖都在本地处理好,通过存储介质交换至目标设备上,尽可能的不使用git和yum方式安装拉取外网资源依赖,不然将来实施人员无法按照手册操作实施。 3、如果你第一次接触docker,请看这里【[图解docker的部署逻辑](https://www.bilibili.com/video/BV1Kx4y1P7c5?p=6&vd_source=0bc9675b3a70f0c0f28fcd4a0b7da7bf)】 ---------------------------- **笔记大纲目录索引** [(一)环境准备](doc:VGCwx0S0) [(二)离线部署Docker到服务器](doc:tM5I6C7b) [(三)验证Docker离线安装和服务是否正确](doc:67UZXJJr) [(四)加载Docker镜像](doc:YYIyCsil) ---------------------------- ## 第一章 环境准备部分 ## 一、华为鲲鹏服务器的远程连接 ==**(核心目的:指导开发人员和实施维护人员远程登录华为鲲鹏服务器)**== 华为鲲鹏创新中心旗舰店 [https://ic-openlabs.huawei.com/](https://ic-openlabs.huawei.com/) [https://uniportal.huawei.com/](https://uniportal.huawei.com/) **资料获取:** 操作指导书:参见 《环境使用指导书》 下载地址: [https://ic-openlabs.huawei.com/client/#/knowledge/details?id=M1T1S1584N703617168035049672&type=1](https://ic-openlabs.huawei.com/client/#/knowledge/details?id=M1T1S1584N703617168035049672&type=1) 参考文档: 《6_鲲鹏创新中心旗舰店环境使用指导书》 实操步骤: **连接要求** ● 用户本地安装好UniVPN软件,参考6 用户本地搭建VPN环境(参考) ● 用户本地安装好ssh终端远程工具,推荐使用MobaXterm。参考下载链接: [https://mobaxterm.mobatek.net/](https://mobaxterm.mobatek.net/) ● 配置VPN连接。参考环境信息表完成登录。 ### ==**Step1:下载UniVPN并配置连接参数,与服务器建立VPN通道**== 先去【参考链接&安装包下载:[https://www.leagsoft.com/doc/article/103107.html](https://www.leagsoft.com/doc/article/103107.html)】下载UniVPN这个软件 我这边下载的是windows版本,软件版本信息:10781.12.0.0328 介质为: univpn-win-full-10781.7.1.0131-siged.zip --------------- size:30MB 该网站提供windows版本和Linux版本,小伙伴们可以根据各自环境获取VPN软件介质 =========================== 解压《附件打包.rar》中《环境信息表-XXXXXXXXXX.xlsx》 录入:Excel文档中VPN账户管理相关信息到UniVPN配置界面中, 按照参考文档:《6_鲲鹏创新中心旗舰店环境使用指导书》中第7页所述:【2.1.2 L2TP over IPsec 登录(方案二)】“导入配置”(*.ini文件),后将UniVPN与华为鲲鹏创新中心旗舰店的网络建立 VPN 连接,软件状态为:登录成功,电脑托盘处提示,协商成功,即可。 ### ==**Step2:下载MobaXterm与服务器连接-终端工具**== 再去[https://mobaxterm.mobatek.net/](https://mobaxterm.mobatek.net/)官网下载(MobaXterm),ssh终端远程工具,如果下载不了的可以尝试这个地址: 软件获取地址: [https://www.webra.top/sites/249.html](https://www.webra.top/sites/249.html) 蓝奏云地址: [https://webra.lanzoux.com/b0e9axoof](https://webra.lanzoux.com/b0e9axoof) 提取密码:webra 介质为: MobaXterm_Installer_v22.1.zip --------------- size:26.6MB =========================== 按照参考文档:《6_鲲鹏创新中心旗舰店环境使用指导书》中第10页所述:2.3 登录裸金属服务器】"输入管理IP、用户名、密码,点击确定登录成功。" =========================== ==**资源分配说明:**== 171.3.33.33给瀚高,Docker(镜像包括:瀚高、金仓、达梦、PostgreSQL、MariaDB、Spring Boot、Redis、Maven、Elasticsearch、pnpm、 Yarn1.x、Node.js 和 Git) 171.3.33.34给金仓, 171.3.33.35给达梦, -------------- ## 二、基本命令-实操部分(获取当前服务器的架构信息) **==(核心目的:获取当前服务器的架构信息以及了解银河麒麟相关扩展命令)==** ### 2.1、获取当前服务器的架构信息 Q:如何查看CPU信息 A:使用以下命令中的一个能查到即可: $ lscpu $ cat /proc/cpuinfo 运行效果 ``` [root@DC1-03-001 etc]# lscpu Architecture: aarch64 CPU op-mode(s): 64-bit Byte Order: Little Endian CPU(s): 96 On-line CPU(s) list: 0-95 Thread(s) per core: 1 Core(s) per socket: 48 Socket(s): 2 NUMA node(s): 4 Vendor ID: HiSilicon Model: 0 Model name: Kunpeng-920 Stepping: 0x1 CPU max MHz: 2600.0000 CPU min MHz: 200.0000 BogoMIPS: 200.00 L1d cache: 6 MiB L1i cache: 6 MiB L2 cache: 48 MiB L3 cache: 96 MiB NUMA node0 CPU(s): 0-23 NUMA node1 CPU(s): 24-47 NUMA node2 CPU(s): 48-71 NUMA node3 CPU(s): 72-95 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Spec store bypass: Not affected Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm [root@DC1-03-001 etc]# ``` Q:如何获取麒麟系统版本信息 A:使用以下命令中的一个能查到即可: 1)桌面版系统: $ cat /etc/kylin-build $ cat /etc/.kyinfo $ cat /etc/kylin-release 2)服务器版系统: $ cat /etc/.productinfo $ nkvers 运行效果 ``` [root@DC1-03-001 etc]# cat /etc/.productinfo Kylin Linux Advanced Server release V10 (SP1) /(Tercel)-aarch64-Build04/20200711 [root@DC1-03-001 etc]# nkvers ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Tercel) Kernel: 4.19.90-17.ky10.aarch64 Build: Kylin Linux Advanced Server release V10 (SP1) /(Tercel)-aarch64-Build04/20200711 ################################################# [root@DC1-03-001 etc]# ``` Q:如何获取系统架构信息 A:使用以下命令中的一个能查到即可: $ uname -a $ arch 运行效果 ``` [root@DC1-03-001 etc]# uname -a Linux DC1-03-001 4.19.90-17.ky10.aarch64 #1 SMP Sun Jun 28 14:27:40 CST 2020 aarch64 aarch64 aarch64 GNU/Linux [root@DC1-03-001 etc]# arch aarch64 [root@DC1-03-001 etc]# ``` linux清屏命令 $ clear **==总结:本文使用的服务器架构是aarch64(华为鲲鹏-裸金属服务器)==** ------------------- ### 2.2、知识扩展 :Arm64 和 AArch64 的区别 结论 结论:现在AArch64 and ARM64 都是指代的同一个东西。 ARM 简要介绍 ARM是一种精简指令集(RISC)架构。 指令集架构(Instruction Set Architecture)是指一种类型CPU中用来计算和控制计算机系统的一套指令的集合。 ARM设计了多种不同的版本。知道ARMv7,都只支持32位处理器(寻址空间)。 2011年发布的ARMv8添加了对64位处理器的支持并且兼容32位。 arm64 和 aarch64 总而言之,就是由于历史原因,一部分人管 64-bit ISA 叫 aarch64,一部分人又觉得叫 arm64 更好。 详情可以看Stack Overflow的这篇回答:Differences between arm64 and aarch64 以及 ARM的维基百科介绍。 ———————————————— 版权声明:本文为CSDN博主「DaydreamHippo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/DaydreamHippo/article/details/128115751 ---------- ## 三、基本命令-实操部分(统一命名规范、Linux基本命令) **== (核心目的:创建有含义有规律的文件夹便于后期维护人员统一找到前面工程师留下的资源)==** ### 3.1、统一命名规范 #### 3.1.1、约定路径 [/root] 表示:系统root根目录 #### 3.1.2、约定目录 [docker_stable] 表示:Docker稳定版本介质存放位置 [docker_img] 表示:Docker镜像文件介质存放位置 #### 3.1.3、约定目录 [highgo] 表示:瀚高数据库 [dameng] 表示:达梦数据库 [kingbase] 表示:金仓数据库 [arm] 表示:arm架构镜像 [x86] 表示:x86架构镜像 我的目录结构参考: ``` [root@DC1-03-001 ~]# pwd /root [root@DC1-03-001 ~]# tree . ├── anaconda-ks.cfg ├── cobbler.ks ├── cpupower ├── docker_img │   ├── dameng │   │   ├── arm │   │   │   └── dm8_20230104_HWarm_centos7_64.zip │   │   └── x86 │   │   └── dm8_20220822_rev166351_x86_rh6_64_ctm.tar │   ├── highgo │   │   ├── arm │   │   │   └── hgdb-docker-arm.tar │   │   └── x86 │   │   └── hgdb-docker.tar │   └── kingbase │   ├── arm │   │   └── kdb_kylinv10_aarch_v8r6c07b012.tar │   └── x86 │   ├── kdb_case_insensitive_x86_64_v8r6c7b012.tar │   └── kdb_case_sensitive_x86_64_v8r6c7b012.tar ├── docker_stable │   └── aarch64 │   ├── docker │   │   ├── containerd │   │   ├── containerd-shim │   │   ├── ctr │   │   ├── docker │   │   ├── dockerd │   │   ├── docker-init │   │   ├── docker-proxy │   │   └── runc │   ├── docker-19.03.8.tgz │   ├── docker-23.0.3.tgz │   ├── docker-rootless-extras-19.03.8.tgz │   └── docker-rootless-extras-23.0.3.tgz ├── java-11-openjdk-11.0.8.tar.gz ├── ks-post.log ├── ks-pre.log ├── original-ks.cfg ``` ### 3.2、Linux基本命令 > **Q:如何在Linux系统创建目录** > **A:使用以下命令中即可:** mkdir (创建新目录) $ mkdir test $ mkdir -m 711 docker_img **==说明:目录[docker_img]统一存放docker的镜像文件,方便后面维护的工程师找资源,统一目录名称==** 教程网址:https://www.runoob.com/linux/linux-file-content-manage.html ``` [root@DC1-03-001 ~]# mkdir test [root@DC1-03-001 ~]# mkdir -m 711 docker_img [root@DC1-03-001 ~]# pwd /root [root@DC1-03-001 ~]# ls -l total 76 -rw------- 1 root root 9134 Apr 10 07:56 anaconda-ks.cfg -rw-r--r-- 1 root root 8356 Apr 10 07:56 cobbler.ks -rw------- 1 root root 1526 Apr 12 08:17 cpupower drwx--x--x 2 root root 4096 Apr 12 08:28 docker_img -rw-r--r-- 1 root root 0 Apr 10 07:56 java-11-openjdk-11.0.8.tar.gz -rw-r--r-- 1 root root 11209 Apr 10 07:56 ks-post.log -rw-r--r-- 1 root root 2896 Apr 10 07:54 ks-pre.log -rw------- 1 root root 8356 Apr 10 07:56 original-ks.cfg drwx------ 2 root root 4096 Apr 11 07:08 test -rw------- 1 root root 6533 Apr 10 00:05 zabbix.log -rw------- 1 root root 65 Apr 11 07:07 测试-MobaXterm服务器上传下载文件.txt [root@DC1-03-001 ~]# ``` **说明:** 如果我们使用 -m ,如上例我们给予 -m 711 来给予新的目录 drwx--x--x 的权限 否则,如:test目录的权限就只有 drwx------ 的权限 https://www.runoob.com/wp-content/uploads/2014/06/363003_1227493859FdXT.png ![image](https://www.runoob.com/wp-content/uploads/2014/06/363003_1227493859FdXT.png) $ cd /root/docker_img/国产数据库厂家目录/ $ mkdir -m 711 arm $ mkdir -m 711 x86 分别创建arm架构和x86架构下的目录,运行效果如下: ``` [root@DC1-03-001 ~]# cd docker_img/ [root@DC1-03-001 docker_img]# mkdir -m 711 highgo [root@DC1-03-001 docker_img]# mkdir -m 711 dameng [root@DC1-03-001 docker_img]# mkdir -m 711 kingbase [root@DC1-03-001 docker_img]# cd highgo/ [root@DC1-03-001 highgo]# mkdir -m 711 arm [root@DC1-03-001 highgo]# mkdir -m 711 x86 [root@DC1-03-001 highgo]# cd /root/docker_img/dameng/ [root@DC1-03-001 dameng]# mkdir -m 711 arm [root@DC1-03-001 dameng]# mkdir -m 711 x86 [root@DC1-03-001 dameng]# cd /root/docker_img/kingbase/ [root@DC1-03-001 kingbase]# mkdir -m 711 arm [root@DC1-03-001 kingbase]# mkdir -m 711 x86 [root@DC1-03-001 kingbase]# ``` ### 3.3、知识扩展 :Linux下使用tree命令查看目录结构(非必要) Linux下的文件虽然是层次型组织结构的,但是我们平时登录到主机上的时候都是使用的各种shell并没有图形界面,看上去很不直观,Linux下有个小命令叫做tree,可以以目录树的形式显示文件结构,类似于Windows下的tree。 如果没有安装的话使用: $ yum install tree 效果如下: ``` [root@DC1-03-001 docker_img]# cd /root/docker_img/ [root@DC1-03-001 docker_img]# tree . ├── dameng │   ├── arm │   └── x86 ├── highgo │   ├── arm │   └── x86 └── kingbase ├── arm └── x86 9 directories, 0 files [root@DC1-03-001 docker_img]# ``` **==说明:目录[docker_img]统一存放docker的镜像文件,方便后面维护的工程师找资源,统一目录名称==** [highgo] 表示:瀚高数据库 [dameng] 表示:达梦数据库 [kingbase] 表示:金仓数据库 [arm] 表示:arm架构镜像 [x86] 表示:x86架构镜像 ---- 如果无法下载,可能是您的主机无法连接互联网或者yum的源未配置,如下: ``` [root@DC1-03-003 highgo]# yum install tree openlab-kylin10sp1 676 B/s | 204 B 00:00 Error: Failed to download metadata for repo 'openlab-kylin10sp1': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried [root@DC1-03-003 highgo]# tree -bash: tree: command not found [root@DC1-03-003 highgo]# ``` 这种情况下,如果无法连接互联网或者yum源无法安装应用就只能采用离线方式安装了,步骤如下: 查看操作系统CPU型号: $ lscpu 查看操作系统信息 $ cat /etc/*release 运行效果如下: ``` [root@DC1-03-001 ~]# lscpu Architecture: aarch64 CPU op-mode(s): 64-bit Byte Order: Little Endian CPU(s): 96 On-line CPU(s) list: 0-95 Thread(s) per core: 1 Core(s) per socket: 48 Socket(s): 2 NUMA node(s): 4 Vendor ID: HiSilicon Model: 0 Model name: Kunpeng-920 Stepping: 0x1 CPU max MHz: 2600.0000 CPU min MHz: 200.0000 BogoMIPS: 200.00 L1d cache: 6 MiB L1i cache: 6 MiB L2 cache: 48 MiB L3 cache: 96 MiB NUMA node0 CPU(s): 0-23 NUMA node1 CPU(s): 24-47 NUMA node2 CPU(s): 48-71 NUMA node3 CPU(s): 72-95 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Spec store bypass: Not affected Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm [root@DC1-03-001 ~]# cat /etc/*release Kylin Linux Advanced Server release V10 (Tercel) NAME="Kylin Linux Advanced Server" VERSION="V10 (Tercel)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)" ANSI_COLOR="0;31" Kylin Linux Advanced Server release V10 (Tercel) [root@DC1-03-001 ~]# ``` 我本打算重置一下yum源,好像突然好了,这个问题还不清楚怎么回事? 参考文章:【银河麒麟服务器系统搭建本地和局域网yum源】 [https://huaweicloud.csdn.net/635617c4d3efff3090b59da9.html](https://huaweicloud.csdn.net/635617c4d3efff3090b59da9.html) 计划,清除原有yum信息,载入新的缓存,这样一个新的本地yum源就可以使用了: #yum clean all #yum makecache 但是我好想没有,清除yum载入缓存,就直接可以安装了(我只是备份了一下kylin10sp1_openlab.repo) 再就是。执行yum install tree的路径是[/etc/yum.repos.d],然后就直接可以yum install tree了,很奇怪!!可能是我的华为鲲鹏服务器的镜像地址是:http://117.78.7.220:25001/repo/klsp1/ks10-adv-os// 我前面操作的时候,正好镜像服务器在调整更新,我后面的操作对方已经恢复了,因为我在171.3.33.33和171.3.33.34都是可以yum install tree的,现在操作的是171.3.33.35,我看了我171.3.33.33的kylin10sp1_openlab.repo文件内容和171.3.33.35 的是一致的。 ``` [root@DC1-03-003 yum.repos.d]# cat kylin10sp1_openlab.repo [openlab-kylin10sp1] name=openlab-kylin10sp1 baseurl=http://117.78.7.220:25001/repo/klsp1/ks10-adv-os// gpgcheck=0 enabled=1 [root@DC1-03-003 yum.repos.d]# ls kylin10sp1_openlab.repo [root@DC1-03-003 yum.repos.d]# cp kylin10sp1_openlab.repo kylin10sp1_openlab.repo.bak [root@DC1-03-003 yum.repos.d]# ls kylin10sp1_openlab.repo kylin10sp1_openlab.repo.bak [root@DC1-03-003 yum.repos.d]# yum tree No such command: tree. Please use /usr/bin/yum --help It could be a YUM plugin command, try: "yum install 'dnf-command(tree)'" [root@DC1-03-003 yum.repos.d]# yum install tree openlab-kylin10sp1 30 kB/s | 2.9 kB 00:00 Dependencies resolved. ====================================================================================================================================================================================================== Package Architecture Version Repository Size ====================================================================================================================================================================================================== Installing: tree aarch64 1.7.0-18.ky10 openlab-kylin10sp1 49 k Transaction Summary ====================================================================================================================================================================================================== Install 1 Package Total download size: 49 k Installed size: 165 k Is this ok [y/N]: y Downloading Packages: tree-1.7.0-18.ky10.aarch64.rpm 166 kB/s | 49 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Total 165 kB/s | 49 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : tree-1.7.0-18.ky10.aarch64 1/1 Running scriptlet: tree-1.7.0-18.ky10.aarch64 1/1 Verifying : tree-1.7.0-18.ky10.aarch64 1/1 Installed: tree-1.7.0-18.ky10.aarch64 Complete! [root@DC1-03-003 yum.repos.d]# tree . ├── kylin10sp1_openlab.repo └── kylin10sp1_openlab.repo.bak 0 directories, 2 files [root@DC1-03-003 yum.repos.d]# ``` ---- ## 三、从百度网盘下载三大国产数据库的Docker镜像文件 **==请按需下载,资料总计55.4GB, (可以只下载需要的架构镜像文件即可)==** 百度网盘 链接:[https://pan.baidu.com/s/1cHGKrqs4-Zi33VXKLZNXhQ](https://pan.baidu.com/s/1cHGKrqs4-Zi33VXKLZNXhQ) 提取码:2023 温馨提醒:镜像文件通常2gb-3gb,下载会非常耗时,提前做好心理准备 百度会员或非会员下载慢的小伙伴,戳这里: [https://www.bilibili.com/video/BV1Xe4y1b7h2/?spm_id_from=333.999.0.0](https://www.bilibili.com/video/BV1Xe4y1b7h2/?spm_id_from=333.999.0.0) ---- ## 四、上传三大国产数据库的Docker镜像文件到目标服务器 **==请按需下载,资料总计55.4GB,(可以只下载需要的架构镜像文件即可)==** 上传Docker镜像文件和Docker的离线部署文件到服务器 **==提示:==** 如果不清楚如何上传文件到Linux服务器的小伙伴,可以看这里: 【MobaXterm服务器上传下载文件】 [https://www.bilibili.com/video/BV1FN4y1T7r7/?spm_id_from=333.788&vd_source=0bc9675b3a70f0c0f28fcd4a0b7da7bf](https://www.bilibili.com/video/BV1FN4y1T7r7/?spm_id_from=333.788&vd_source=0bc9675b3a70f0c0f28fcd4a0b7da7bf) 可安装tree命令工具,查看文件和目录结构,效果如下: ``` [root@DC1-03-001 docker_img]# cd /root/docker_img/ [root@DC1-03-001 docker_img]# ls dameng highgo kingbase [root@DC1-03-001 docker_img]# tree . ├── dameng │   ├── arm │   │   └── dm8_20230104_HWarm_centos7_64.zip │   └── x86 │   └── dm8_20220822_rev166351_x86_rh6_64_ctm.tar ├── highgo │   ├── arm │   │   └── hgdb-docker-arm.tar │   └── x86 │   └── hgdb-docker.tar └── kingbase ├── arm │   └── kdb_kylinv10_aarch_v8r6c07b012.tar └── x86 ├── kdb_case_insensitive_x86_64_v8r6c7b012.tar └── kdb_case_sensitive_x86_64_v8r6c7b012.tar 9 directories, 7 files [root@DC1-03-001 docker_img]# ``` **温馨提示:** 本次服务器环境为华为鲲鹏裸金属服务器,本文使用的服务器架构是aarch64,其实就是arm版本 所以:大家只用上传arm架构对应的镜像文件即可,达梦的arm镜像文件好像不对,我下来在协调 **注意事项:** 使用MobaXterm的SSH(SFTP)上传镜像文件挺慢的,我这边可能是走的VPN(UniVPN),所以上传速率最高只有2mb左右,一个2GB的镜像文件,至少传输半小时以上,而且不支持断点续传,会出现中断后重新传输的情况,大家要有心理准备