由于arm架构的ubuntu系统通过容器运行时出现不兼容或者update报错的问题,在此整理下这两天的结果。
测试的机器分别是centos7.5和kylin v10系统,分别对应x86和arm架构。镜像仓库选择dockerhub官网。apt源选择默认源和清华源测试。ubuntu的镜像源每个版本的代号:22.10:kinetic;22.04:jammy;21.10 :impish;20.04:focal;18.04:bionic;16.04:xenial;14.04:trusty。
先说结论,ubuntu21.10版本update不能用,22.04版本x86正常arm需要添加--privileged参数,其他版本正常,后续会补充进展。欢迎各位大佬留言解惑
一、x86机构
1、ubuntu 20.04
docker run -it --rm --name test ubuntu:20.04 bash
cat /etc/issue
cat /etc/apt/sources.list
默认用官方源Index of /ubuntu更新正常
换成清华源,默认用https地址会报错(参考文章3.1),手动替换(如何用清华源参考3.2)
cat << EOF > /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse
EOF
2、ubuntu 18.04
docker run -it --rm --name test ubuntu:18.04 bash
官方源ok,清华源ok
3、ubuntu 21.10
docker run -it --rm --name test ubuntu:21.10 bash
官方源error,清华源error
说是没找到impish这个release,看了下dists确实没有,这点还在研究。
4、ubuntu 22.04
docker run -it --rm --name test ubuntu:22.04 bash
官方源ok
二、arm机构
1、ubuntu 20.04
docker run -it --rm --name test ubuntu:20.04 bash
cat /etc/issue
cat /etc/apt/sources.list
默认用官方源Index of /ubuntu-ports更新正常
换成清华源,默认用https地址会报错(参考文章3.1),手动替换
cat << EOF > /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security multiverse
EOF
2、ubuntu 18.04
docker run -it --rm --name test ubuntu:18.04 bash
官方源ok,清华源ok
3、ubuntu 21.10
docker run -it --rm --name test ubuntu:21.10 bash
官方源error,清华源error
4、ubuntu 22.04
docker run -it --rm --name test ubuntu:22.04 bash
官方源error
尝试过注册key的方法,无效(参考3.3)
目前只能通过不校验成功update
docker run -it --rm --name test --privileged ubuntu:22.04 bash
参考了:docker运行ubuntu22.04出现异常(转载)_qq_43808467的博客-CSDN博客
AGX Xavier Ubuntu 18.04 docker无法apt update问题解决 - 知乎
docker - apt update throws signature error in Ubuntu 20.04 container on arm - Ask Ubuntu
三、出现的问题
1、换成国内源后报https证书问题
Certificate verification failed: The certificate is NOT trusted. The certificate issuer is unknown. Could not handshake: Error in the certificate verification
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
解决:
有两种方式,手动安装ca-certificates或者把源地址换成http。
手动安装ca-certificates需要的文件:
https://download.csdn.net/download/weixin_39855998/87322568
2、如果选择国内开源站
以清华为例,访问:清华大学开源软件镜像站 | Tsinghua Open Source Mirror
搜索ubuntu镜像,ubuntu下面是x86,ubuntu-ports下面是arm架构
点击黑色问号可以直接复制source.list的地址
点进去查看dists可以看到当前存在哪些版本的包
3、提示the public key is not available: NO_PUBKEY XXXX
注册这个key,报错缺包:
E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation(此处陷入死循环,update源需要安装gnupg包,安装gnupg包需要首先update)
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 871920D1991BC93C
不信邪了,直接把所有依赖deb全部找齐
本地安装 gnupg,继续
这次不报错了
版权归原作者 情绪零碎碎 所有, 如有侵权,请联系我们删除。