该学习之路一直以【centos:centos7】为基础镜像,如过程发现逻辑漏洞,望指教
macbookProM1遇到的问题
执行 npm run -itd centos:centos7 时有WARNING
执行命令::cc@ccdeMacBook-Pro docker % docker run -itd centos:centos7
WARNING:WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
其实启动时系统已经把WARNING相关的关键字告诉你了,但是IMAGE还是能正常启动的,所以我们可能会忽略这句提示,直到 ⬇️ ⬇️ ⬇️ ⬇️
执行 yum install git 的时候报错
http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 502 - Bad Gateway
http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 502 - Bad Gateway
https://download.cf.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#35 - "Encountered end of file
failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 502 - Bad Gateway
https://download.cf.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#35 - "Encountered end of file
思考思路:只是在一个很纯净的centos7镜像里去执行一句yum install git命令而已,但却报了404的错误。
yum源问题 ❌
因为国内外的网络因素,所以我第一想法就是yum源问题,所以就一切以centos7 yum切换源为关键字去找google找答案。
以下是找到【切换yum源】的方法: ⬇️ ⬇️ ⬇️ ⬇️
# 下载软件的时候先切换成阿里源或者网易源:
# 先备份后下载
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 参考:
<https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11t56bHS>
<https://www.fyyidc.com/news/content/13.html>
镜像问题 ❌
去docker hub里找centos7镜像,结果如下 ⬇️ ⬇️ ⬇️ ⬇️
执行docker pull arm64v8/centos:7
重新启动docker run -itd arm64v8/centos:7,发现RUN的时候不会报platform错误了
但是启动完后执行yum install git还是报错
查看/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
$releasever = 7 ✅
$basearch = aarch64 ❌
所以链接还是报404/502了
第三想法,架构问题 ✅
一开始执行RUN命令时就已经有WARNING了,所以尝试通过另外一种方式RUN
依次执行:
`
docker run -itd --platform linux/amd64 centos:centos7`
docker ps
docker exec -it _containerId /bin/bash
// 切换yum源。先备份后下载
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum install git
一切执行成功,通过