注意是centos7 docker官方版镜像不支持arm架构(FROM centos:7),不是centos7不支持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 <fauria@gmail.com>
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的资源有限,无法覆盖所有架构。文章来源:https://www.toymoban.com/news/detail-721276.html
-
社区支持:虽然官方版CentOS不支持ARM架构,但是有一些非官方的CentOS衍生版本可以在ARM架构上运行,由第三方社区维护。这些社区版本提供了对ARM架构的支持,并且在一些ARM开发板上得到了广泛的应用和支持。文章来源地址https://www.toymoban.com/news/detail-721276.html
到了这里,关于注意避坑:centos7官方版镜像不支持arm架构(docker请求的映像的平台(linux/aamd64)与检测到的主机平台(linux/alm64/v8)不匹配)fauria/vsftpd的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!