注意是centos7 docker官方版镜像不支持arm架构(FROM centos:7),不是centos7不支持arm

文章目录

问题背景解释centos7官方版不支持arm架构(除开某些非官方衍生版本)ubuntu官方版支持arm架构

疑问为什么centos官方版不支持arm架构?

问题背景

今天基于fauria/vsftpd在我们的arm盒子上做了个docker镜像,但是用镜像run容器的时候提示:

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested

翻译就是:

警告:请求的映像的平台(linux/aamd64)与检测到的主机平台(linux/alm64/v8)不匹配,并且没有请求特定的平台

这就很奇怪了,我们明明是在arm上拉的镜像。

看fauria/vsftpd github issue,这个人也遇到了相似的问题:

Docker 镜像未标记为与 Arm 兼容

然后我们查看fauria/vsftpd的dockerfile,发现它是基于centos7制作的:

FROM centos:7

ARG USER_ID=14

ARG GROUP_ID=50

MAINTAINER Fer Uria

LABEL Description="vsftpd Docker image based on Centos 7. Supports passive mode and virtual users." \

License="Apache License 2.0" \

Usage="docker run -d -p [HOST PORT NUMBER]:21 -v [HOST FTP HOME]:/home/vsftpd fauria/vsftpd" \

Version="1.0"

RUN yum -y update && yum clean all

RUN yum install -y \

vsftpd \

db4-utils \

db4 \

iproute && yum clean all

RUN usermod -u ${USER_ID} ftp

RUN groupmod -g ${GROUP_ID} ftp

ENV FTP_USER **String**

ENV FTP_PASS **Random**

ENV PASV_ADDRESS **IPv4**

ENV PASV_ADDR_RESOLVE NO

ENV PASV_ENABLE YES

ENV PASV_MIN_PORT 21100

ENV PASV_MAX_PORT 21110

ENV XFERLOG_STD_FORMAT NO

ENV LOG_STDOUT **Boolean**

ENV FILE_OPEN_MODE 0666

ENV LOCAL_UMASK 077

ENV REVERSE_LOOKUP_ENABLE YES

ENV PASV_PROMISCUOUS NO

ENV PORT_PROMISCUOUS NO

COPY vsftpd.conf /etc/vsftpd/

COPY vsftpd_virtual /etc/pam.d/

COPY run-vsftpd.sh /usr/sbin/

RUN chmod +x /usr/sbin/run-vsftpd.sh

RUN mkdir -p /home/vsftpd/

RUN chown -R ftp:ftp /home/vsftpd/

VOLUME /home/vsftpd

VOLUME /var/log/vsftpd

EXPOSE 20 21

CMD ["/usr/sbin/run-vsftpd.sh"]

难不成centos7不支持arm架构?查了一下,貌似还真是。

解释

centos7官方版不支持arm架构(除开某些非官方衍生版本)

CentOS 7官方版本是不支持ARM架构的。

然而,有一些非官方的CentOS 7衍生版本可以在ARM架构上运行,例如CentOS 7 for ARM64(aarch64)和CentOS 7 for ARM32(armhfp)。

这些版本通常由第三方社区维护,可以在一些ARM开发板上使用。

ubuntu官方版支持arm架构

比如: Ubuntu 20.04官方版本支持多种ARM架构。具体来说,Ubuntu 20.04提供了以下ARM版本:

arm64(aarch64):适用于64位ARM架构的设备,如ARMv8架构。armhf:适用于32位ARM架构的设备,如ARMv7架构。

这些ARM版本的Ubuntu 20.04可以在许多ARM开发板和嵌入式设备上运行,例如Raspberry Pi、NVIDIA Jetson系列、Qualcomm Snapdragon等。你可以从Ubuntu官方网站上下载相应的ARM版本镜像,并根据设备的架构进行安装和使用。

疑问

为什么centos官方版不支持arm架构?

资源限制:CentOS是由社区维护的开源操作系统,其开发和维护需要大量的人力和物力资源。由于ARM架构的设备相对较少,社区资源有限,因此官方版CentOS选择集中精力在x86架构上进行开发和支持。 架构差异:ARM架构与x86架构在指令集和硬件体系结构上存在差异。将CentOS从x86架构移植到ARM架构需要进行大量的工作,包括重新编译软件包、解决架构相关的问题等。这需要额外的开发和测试工作,而官方版CentOS的资源有限,无法覆盖所有架构。 社区支持:虽然官方版CentOS不支持ARM架构,但是有一些非官方的CentOS衍生版本可以在ARM架构上运行,由第三方社区维护。这些社区版本提供了对ARM架构的支持,并且在一些ARM开发板上得到了广泛的应用和支持。

推荐文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。