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组

sudo groupadd -f -r docker
sudo usermod -aG docker ${USER}
newgrp docker
//在docker环境下的操作,给下面vpp时用
sudo groupadd -f -r vpp
sudo usermod -aG vpp ${USER}
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 。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

//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

-----------------------反向参照参考------------------------

//停止容器

docker stop ubuntu22.04-vpp

//删除容器

docker rm ubuntu22.04-weiy

//删除image

docker rmi ubuntu:22.04

-----------------------------------------------

先执行下面的 13.docker下ubuntu22.04环境下安装基本tool和lib ,否则系统默认么有sshd

//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

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值