• Ubuntu24.04下安装docker,并pull ubuntu22.04,然后编译安装vpp


    一、docker安装说明

    解决官方源无法下载的问题

    二、使用步骤

    1.更新软件包索引

    sudo apt update
    

    2.安装必要的软件包,以允许apt通过HTTPS使用仓库

    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    

    3.添加Docker的官方GPG密钥(已经不能用了,请用5)

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    

    4.添加Docker的官方稳定仓库(已经不能用了,请用6)

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    5.添加Docker的阿里云 apt仓库 GPG密钥

    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

    6.添加Docker的阿里云 apt仓库

    sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

    7.再次更新软件包索引

    sudo apt update

    8.安装最新版本的Docker CE(社区版)

    sudo apt install docker-ce

    9.验证Docker是否安装成功并运行

    sudo systemctl status docker

    10.如果你想让非root用户也能run docker命令,可以将该用户添加到docker组

    1. sudo groupadd -f -r docker
    2. sudo usermod -aG docker ${USER}
    3. newgrp docker
    4. sudo groupadd -f -r vpp
    5. sudo usermod -aG vpp ${USER}
    6. newgrp vpp

    11.镜像加速

     国内从DockerHub拉取镜像有时会非常慢,推荐配置镜像加速器,默认未配置加速URL。

    Docker官方、国内大型云服务器商一般提供国内加速器服务。可尝试配置以下地址,

    下面列出国内常用的加速站点,总体来说阿里云的速度较稳定。

    docker中国区官方镜像加速:https://registry.docker-cn.com

    网易镜像加速:http://hub-mirror.c.163.com

    中国科技大学镜像加速:https://docker.mirrors.ustc.edu.cn

    腾讯云镜像加速:https://mirror.ccs.tencentyun.com

    如果以上加速地址不稳定的话,推荐使用阿里云的镜像加速,相对较稳定一些。不过,需要在阿里去获取一下自己的专属地址,是免费获取。操作步骤也比较简单。

    第一步,登录阿里云

    如果没有阿里云账号,可自行注册一个,或使用支付宝或淘宝或钉钉账号登录。

    第二步,登录控制台

    访问“容器镜像服务->镜像工具->镜像加速器”页面。或直接访问地址。 

    阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

    可获取属于自己的专属URL。格式为 https://<你的专属ID>.mirror.aliyuncs.com 。

    1. sudo mkdir -p /etc/docker
    2. sudo tee /etc/docker/daemon.json <<-'EOF'
    3. {
    4. "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
    5. }
    6. EOF
    7. sudo systemctl daemon-reload
    8. sudo systemctl restart docker
    9. //xxxxxx是你自己的专属ID

    12.docker下安装ubuntu22.04

    //搜索相关images
    docker search ubuntu
    docker search ubuntu:22.04

    //pull ubuntu 22.04
    docker pull ubuntu:22.04
    docker images

    //创建ubuntu:22.04-vpp容器,

    //1.映射端口,用于host ssh到docker里面(其他sshd的配置参见:使用SSH远程直连Docker容器_docker ssh-CSDN博客)netstat -atunlp,

    //2.--privileged=true(docker run:--privileged=true选项解析(特权模式:赋予容器几乎与主机相同的权限)-CSDN博客

    //3. -v [主机目录]:[容器目录] (必须的,否则主机接口无法被docker的容器失败到)

    docker run -dit --name ubuntu22.04-vpp --privileged=true -v /sys/bus/pci/drivers:/sys/bus/pci/drivers -v /sys/kernel/mm/hugepages:/sys/kernel/mm/hugepages -v /sys/devices/system/node:/sys/devices/system/node -v /dev:/dev -p 8088:8080 ubuntu:22.04 /bin/bash
     

    //启动容器

    docker ps -a

    docker start ubuntu22.04-vpp

    docker ps

    docker exec -it ubuntu22.04-vpp bash

    //ubuntu:22.04-vpp容器里面更新sshd_config

    vi /etc/ssh/sshd_config

    #Port 22 ---> Port 8080

    #PermitRootLogin prohibit-password ---> PermitRootLogin yes

    //重启sshd(每次启动都需要手工启动)

    service ssh restart

    /* 参考命令

    docker run -dit --name ubuntu22.04-vpp-weiy --privileged=true -v /lib/modules:/lib/modules -p 8088:8080 ubuntu:22.04 /bin/bash

    docker run -dit --name ubuntu22.04-vpp --privileged=true -v /sys/bus/pci/drivers:/sys/bus/pci/drivers -v /sys/kernel/mm/hugepages:/sys/kernel/mm/hugepages -v /sys/devices/system/node:/sys/devices/system/node -v /dev:/dev -p 8088:8080 ubuntu:22.04 /bin/bash

    docker ps

    docker exec -it ubuntu22.04-vpp /bin/bash

    */

    13.docker下ubuntu22.04环境下安装基本tool和lib

    //添加root用户,并设置密码,用于ssh登录使用

    passwd root

    //更新apt list并升级

    apt update

    apt upgrade

    //安装基本tool和lib

    apt install sudo vim git openssh-server net-tools build-essential cmake meson python3-pyelftools lshw pciutils lsb-release iproute2

    lsb_release -a

    dpdk docker的lspci错误_lspci: unable to load libkmod resources: error -12-CSDN博客

    14. 在docker下的ubuntu22.04-vpp容器下编译安装vpp

    cd /root
    mkdir Downloads
    mkdir work
    cd work

    //如果git clone失败,多尝试几次
    git clone https://github.com/FDio/vpp.git

    //编译vpp(如果失败,多尝试几次)

    cd vpp

    make install-dep

    make install-ext-deps

    make build

    make pkg-deb

    //安装vpp

    dpkg -i build-root/*.deb

    15. dpdk&kmods

    cd build/external/downloads/

    tar -xvf dpdk-24.03.tar.xz

    cd dpdk-24.03

    meson setup build

    ninja -C build

    meson configure -Dexamples=all build

    ninja -C build

    usertools/dpdk-devbind.py -s

    //igb_uio

    apt install linux-headers-$(uname -r)

    apt install linux-modules-extra-$(uname -r)

    apt install iproute2

    //如果上面install失败提示找不到包 linux-headers-$(uname -r) 或linux-modules-extra-$(uname -r)

    可以

    查看 ls -la /lib/modules 查看本机安装的版本,并修改dpdk-kmods/linux/igb_uio/目录里面的Makefile

    chang 

    KSRC ?= /lib/modules/$(shell uname -r)/build

    to

    KSRC ?= /lib/modules/本机有的目录(查看 ls -la /lib/modules得到))/build

    git clone git://dpdk.org/dpdk-kmods

    cd dpdk-kmods/linux/igb_uio/

    make

    /for igb_uio也可以直接安装

    sudo apt install dpdk-kmods-dkms

    find /lib/modules/ -name "igb_uio*"

    //安装igb_uio

    modprobe uio

    insmod igb_uio.ko 

    lsmod | grep uio

    //保留巨页内存

    mkdir -p /dev/hugepages

    mountpoint -q /dev/hugepages || mount -t hugetlbfs nodev /dev/hugepages

    echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

    16. run vpp

    vpp -c /etc/vpp/startup.conf &

    vppctl

    17. dpdk

    cd build/external/downloads/

    tar -xvf dpdk-24.03.tar.xz

    cd dpdk-24.03

    meson setup build

    ninja -C build

    meson configure -Dexamples=all build

    ninja -C build

    usertools/dpdk-devbind.py -s

  • 相关阅读:
    Cookie:实现网站十天内免密登录
    Element-ui container常见布局
    【夜读】一个人的顶级自律、是坚持这四件事
    CH573-09-BLE蓝牙安卓应用二次开发——RISC-V内核BLE MCU快速开发教程
    按键精灵打怪学习-窗口绑定技能
    一个用Go构建Windows、Linux、MacOSX的跨平台桌面应用程序
    本周大新闻|7-11便利店测试AR远程购物,PICO商店支持退款
    传统开放集识别方法
    Mac 如何选择 选择Pro还是Air
    高德地图脚本加载异常,浏览器报错
  • 原文地址:https://blog.csdn.net/weixin_49233333/article/details/137105032