ubuntu x86环境创建armv8 ubuntu2004 64位docker服务器

在arm编译速度慢,运行vscode远程耗费资源,因此尝试在ubuntu服务器上搭建armv8 64位编译环境,过程很简单,记录如下

一、安装qemu解释器

bash 复制代码
# 宿主机安装解释器和时区设置
sudo apt install -y qemu-user-static tzdata
# 重启docker
sudo systemctl restart docker

二、编写Dockerfile

内容如下:

bash 复制代码
# 使用多阶段构建,首先从x86_64的Ubuntu镜像开始
FROM ubuntu:20.04 as builder

# 安装 qemu-user-static
RUN apt-get update && apt-get install -y qemu-user-static tzdata

# 设置时区为东八区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 从aarch64的Ubuntu镜像创建最终的镜像
FROM arm64v8/ubuntu:20.04

# 复制 qemu-aarch64-static 从x86_64镜像
COPY --from=builder /usr/bin/qemu-aarch64-static /usr/bin
COPY --from=builder /usr/share/zoneinfo/Asia/Shanghai /usr/share/zoneinfo/Asia/Shanghai

# 设置时区为东八区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo $TZ > /etc/timezone

# 替换源为清华镜像源
RUN sed -i s@/ports.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list
#    sed -i s@/archive.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list && \
#    sed -i s@/security.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list

# 安装build-essential, cmake, Python及相关工具
RUN apt-get update && apt-get install -y \
    build-essential \
    cmake \
    vim \
    iputils-ping \
    net-tools \
    iproute2 \
    libssl-dev \
    libopencv-dev \
    libfreetype6-dev \
    libcurl4-openssl-dev \
    git \
    curl \
    wget \
    lsb-release \
    gdb \
    unzip \
    tar \
    python3 \
    python3-pip \
    python3-setuptools \
    python-is-python3 \
    software-properties-common \
    && rm -rf /var/lib/apt/lists/*

# 设置pip和pip3使用国内镜像源
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip -U && \
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ && \
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip -U && \
    pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

# 设置工作目录
WORKDIR /workspace

# 指定默认命令
CMD ["/bin/bash"]

三、构建docker镜像

bash 复制代码
sudo docker build -t your_docker_image_name:your_tag -ubuntu2004 .

等待构建完成通过sudo docker images即可查看构建成功的镜像,也可通过docker save保存镜像

bash 复制代码
sudo docker save -o your_save_name.tar your_docker_image_name

通过docker run进入Docker

bash 复制代码
sudo docker run --network=host -v your_path:/workspace -it your_image_id /bin/bash
相关推荐
无足鸟ICT3 小时前
【RHCA+】安装Tuned
linux·服务器·centos
测试界的小码农8 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
艺杯羹9 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
女神下凡11 小时前
芯参谋(107):杰理AC_中科蓝讯_开发指南
linux·服务器·网络·单片机·嵌入式硬件
落羽的落羽11 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
csdn_aspnet14 小时前
macOS 10 、Docker 玩轉 MySQL
运维·mysql·macos·docker·容器·mac
对象存储与RustFS15 小时前
Jenkins 的构建产物别堆在控制器磁盘:用 RustFS 当它的 S3 工件仓库
后端·docker·云原生
say_fall17 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
江湖有缘18 小时前
基于Ubuntu部署SoduWork:企业级 AI 原生协同平台实战全流程
linux·人工智能·ubuntu·ai·soduwork
无奈笑天下1 天前
银河麒麟上nproc命令教程详解
linux·运维·服务器