首页 > 其他分享 >ARM架构银河麒麟使用笔记-下载docker软件包及所有依赖包并在离线环境下安装

ARM架构银河麒麟使用笔记-下载docker软件包及所有依赖包并在离线环境下安装

时间:2024-04-02 10:45:19浏览次数:29  
标签:sudo 离线 apt ce device docker Docker ARM

ARM架构银河麒麟使用笔记-下载docker软件包及所有依赖包并在离线环境下安装

arm银河麒麟aptdocker

目的是在arm架构的银河麒麟操作系统V10中安装docker。

一、给虚拟机创建快照

1. 创建

qemu-img snapshot -c EmptyKylin rootfs.qcow2 

2. 查看

qemu-img snapshot -l rootfs.qcow2 

3. 恢复

qemu-img snapshot -a EmptyKylin rootfs.qcow2 

二、启动银河麒麟虚拟机

到虚拟机的存放目录下,使用以下命令来启动虚拟机。

sudo qemu-system-aarch64 -m 4096 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios QEMU_EFI.fd -net nic,model=pcnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=rootfs.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -net tap -net nic

这个命令使用的前提是:QEMU_EFI.fdrootfs.qcow2,并且事先配置了NAT网络。

三、创建目录

这个目录用于存放要下载的软件及软件包

sudo mkdir -p /Docker-Kylin-OfflinePackages/archives

sudo chmod -R 777 /Docker-Kylin-OfflinePackages

四、下载docker并保存

直接使用apt install来安装docker是不行的,找不到软件源。所以要先配置docker的软件源。

1. 设置docker源

参考的是Docker CE 镜像源站执行如下命令,第三步我是做了修改的。

1-1. step 1: 安装必要的一些系统工具

sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

1-2. step 2: 安装GPG证书

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

1-3. Step 3: 写入软件源信息

编辑文件/etc/apt/sources.list.d/docker.list,向其中加入如下一行

deb [arch=arm64 https://mirrors.aliyun.com/docker-ce/linux/debian bullseye stable

1-4. Step 4: 更新

sudo apt update

2. 下载软件包及依赖包

2-1. 执行下载命令

下面的命令会将docker-cedocker-ce-rootless-extrasdocker-buildx-plugindocker-compose-plugin以及它们的递归依赖都下载到/Docker-Kylin-OfflinePackages/archives目录内:


cd /Docker-Kylin-OfflinePackages/archives
sudo apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances docker-ce docker-ce-rootless-extras docker-buildx-plugin docker-compose-plugin | grep "^\w" | sort -u)

结果如下,可以看到,一共下载了120个软件包。
enter description here

五、建立软件源

cd /Docker-Kylin-OfflinePackages
apt-ftparchive packages archives > archives/Packages
cd archives/
gzip -c Packages > Packages.gz
touch release
apt-ftparchive release ./ > Release

完成以上命令后,把Docker-Kylin-OfflinePackages这个目录找个地方保存起来,以后复制到离线机器上之后,执行接下来的步骤,应该就可以用了。

六、修改配置文件

把原有的指向互联网的源都注释掉,增加一个以刚才创建的目录为来源的软件源,就可以代表着离线状态了。同时我把互联网的连接也断掉了。

1. 修改/etc/apt/sources.list

注释掉原来的源,增加自建的源。修改后的结果为:

# 本文件由源管理器管理,会定期检测与修复,请勿修改本文件
# deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-2303-updates main universe multiverse restricted
# deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1 main restricted universe multiverse
# deb http://archive2.kylinos.cn/deb/kylin/production/PART-V10-SP1/custom/partner/V10-SP1 default all
deb [trusted=yes] file:/Docker-Kylin-OfflinePackages archives/

2. 修改/etc/apt/sources.list.d/docker.list

注释掉其中的内容。

3. 修改/etc/dpkg/dpkg.cfg文件,禁止银河麒麟的签名验证

把文件中allow-kylinsignverify-kylinsign两行注释掉。否则后面安装软件的时候会提示验证失败无法安装。

4. 更新缓存

sudo apt clean
sudo apt update

得到如下结果
enter description here

七、安装docker

执行命令:

sudo apt install docker-ce docker-ce-rootless-extras docker-buildx-plugin docker-compose-plugin

过程及结果如下:
enter description here
enter description here
enter description here

八、测试使用docker

在下面的测试过程中,如果出现权限问题,请使用sudo

1. 查看当前docker服务状态

systemctl status docker

2. 启动docker服务

systemctl start docker

3. 查看所有的镜像

docker image ls

4. 导入hello-world镜像

事先在当前目录下有一个hello-world.tar的压缩包,是从别的地方导出的一个测试容器。
使用docker load -i hello-world.tar命令导入这个容器。
enter description here

5. 运行导入的镜像

使用docker run hello-world来运行导入的镜像
enter description here
问题是,导入的那个镜像是(linux/amd64)平台的,也就是x86_64架构,而运行docker的这个银河麒麟操作系统使用的是(linux/arm64/v8)平台,是arm64架构,两种架构不一样,没有办法运行。

6. 查看所有的容器

使用命令docker ps -a查看所有的容器
enter description here

九、离线源应用

1. 关闭刚才的虚拟机

2. 恢复快照

qemu-img snapshot -a EmptyKylin rootfs.qcow2 

3. 启动银河麒麟虚拟机

sudo qemu-system-aarch64 -m 4096 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios QEMU_EFI.fd -net nic,model=pcnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=rootfs.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -net tap -net nic

4. 复制软件包到新的离线机器上

sudo scp -r Docker-Kylin-OfflinePackages [email protected]:/home/wd

5. 修改配置文件

下面的操作顺序是有讲究的。如果第三步不在第四步的前面,会出现类似于elease 的 Release 文件已经过期(已经过期了 7小时 23分 21秒)。该仓库的更新将不会应用这种错误。

5-1. 修改/etc/dpkg/dpkg.cfg文件,禁止银河麒麟的签名验证

把文件中allow-kylinsignverify-kylinsign两行注释掉。否则后面安装软件的时候会提示验证失败无法安装。

5-2. 把所有的软件源都注释掉

在我这里的虚拟机环境中,只需要修改/etc/apt/sources.list,注释掉里面的所有源。

5-3. 清除缓存

sudo apt clean

5-4. 增加软件源

编辑/etc/apt/sources.list,在后面增加如下一行:

deb [trusted=yes] file:/home/wd/Docker-Kylin-OfflinePackages archives/

这里的文件路径要根据自己上传的位置来写。

5-5. 更新软件源

sudo apt update

得到如下结果
enter description here

6. 安装docker

执行命令:

sudo apt install docker-ce docker-ce-rootless-extras docker-buildx-plugin docker-compose-plugin

结果如下:
enter description here
查看docker服务、导入hello-world、启动hello-world和前面都一样。
到这里就结束了。

标签:sudo,离线,apt,ce,device,docker,Docker,ARM
From: https://www.cnblogs.com/nangongergou/p/18110084

相关文章

  • Ubuntu安装docker
    官网卸载系统docker,防止冲突forpkgindocker.iodocker-docdocker-composedocker-compose-v2podman-dockercontainerdrunc;dosudoapt-getremove$pkg;done卸载请参照docker卸载设置docker的apt仓库sudoapt-getupdatesudoapt-getinstallca-certificat......
  • docker-compose 部署OWASP Juice Shop + CTFd
    项目介绍1.OWASPJuiceShop原文OWASPJuiceShopisprobablythemostmodernandsophisticatedinsecurewebapplication!Itcanbeusedinsecuritytrainings,awarenessdemos,CTFsandasaguineapigforsecuritytools!JuiceShopencompassesvulnerabili......
  • 【Docker】搭建便捷的Docker容器管理工具 - dockerCopilot
    【Docker】搭建便捷的Docker容器管理工具-dockerCopilot前言本教程基于绿联的NAS设备DX4600Pro的docker功能进行搭建。前面有介绍过OneKey,而dockerCopilot便是OneKey的升级版,作者对其进行了重新命名,并且对界和功能都进行了全面的优化。目前通过绿联自带的Docker管理器......
  • docker
    初始docker项目部署问题部署较为复杂,部署碰到许多问题形成可移植docker是一个快熟交互的应用dokcer和虚拟机区别应用需要依赖一起打包node,mysql跨系统镜像2部分组成:[]repository在没有指定启动systemctlstartdockerdocker基本命令dockerfiledockerbuildlocaldockerr......
  • Docker小计
    Dockersdockerinspectname#查看容器信息dockerupdate--restart=always容器ID#设置容器启动方式为自启动(容器Stop状态下)Docker-composeversion:'3.9'services:mysql-master-redis:image:mysql:8.0container_name:mysql-master-redisrestar......
  • pycharm安装库一直不成功
    在pycharm里面安装各种库但是就是不成功,不是版本低就是不匹配,我真的服了想吐学*-*!!!!!但是好在我安装了annacoda3在windows上,然后再seting里面设置选择其他的python版本然后,由于我在其他版本上安装还是成功地所以就很愉快的跑出今天在装虚拟机里的环境的时候真的要被气哭了,我真的觉......
  • Life on the Farm
    农场生活农场的生活总是在变化。新技术和人们对健康有机饮食的兴趣日益浓厚,对农场的经营方式产生了巨大影响。与此同时,不断增长的人口对农民提出了更多的要求。他们需要找到提高生产水平的方法。过去生产大部分产品的小型家庭农场已在很大程度上被工厂化农场所取代。仍在经营的小......
  • Node.js毕业设计基于HarmonyOS在线学习平台app(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的迅猛发展,移动应用已经成为了人们获取信息、学习知识的重要渠道。在线学习平台作为现代教育技术的重要组成部分,为人们提供了便捷的学习途径......
  • Node.js毕业设计基于HarmonyOS的门诊预约平台(Express+附源码)
    本系统(程序+源码)带文档lw万字以上  文末可获取本课题的源码和程序系统程序文件列表系统的选题背景和意义选题背景:随着科技的不断发展,互联网已经深入到我们生活的方方面面,特别是在医疗领域,互联网技术的应用使得医疗服务变得更加便捷和高效。然而,尽管互联网医疗的发展势头......
  • 【ARM课】3-外部中断
    1.cubemx设置参考文章【STM32】HAL库——按键外部中断时钟设置将HCLK设置为最大频率72MHzGPIO设置按键引脚GPIO模式——下降沿触发上拉NVIC勾选以及如是填写中断抢占优先级,具体原因在“一个老是掉进去的坑”中叙述。LED引脚(同上一篇文章)输出电平——PA8......