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

news2024/11/23 3:49:59

一、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 vpp
sudo usermod -aG docker ${USER}

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容器,并映射端口,用于host ssh到docker里面(其他sshd的配置参见:使用SSH远程直连Docker容器_docker ssh-CSDN博客),--privileged=true(docker run:--privileged=true选项解析(特权模式:赋予容器几乎与主机相同的权限)-CSDN博客)
docker run -dit --name ubuntu22.04-vpp --privileged=true  -p 8088:8080 ubuntu:22.04 /bin/bash

//启动容器

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并升级

lsb_release -a

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

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

cd dpdk-kmods/linux/igb_uio/

make

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cobalt Strike DLL用于永恒之蓝注入

1、原因&#xff1a; 我们在对存在MS17010的漏洞主机进⾏DLL注⼊的时候&#xff0c;⼀般都是⽤的Meataploit的msf venom⽣成出来的&#xff0c;所以每次上线之 后基本都是要经过相对⽐较繁琐的操作之后转到Cobalt Strike去&#xff0c;这样就会显得⾮常⿇烦。所以可以使⽤metas…

服务器性能测试指南:从零到一的超详细规范!

引言&#xff1a; 对于一台服务器的性能测试是确保其能够提供稳定和高效的服务的关键步骤。本文将从零开始&#xff0c;一步一步地介绍如何进行一次完善的服务器性能测试&#xff0c;确保您能够最大程度地了解服务器的性能指标。 一、确定测试目标&#xff1a; 在开始测试之前…

Linux线程:基于环形队列RingQueue的生产消费者模型

目录 一、环形队列的概念及定义 二、POSIX信号量 三、RingQueue的实现方式 3.1RingQueue.hpp的构建 3.2Thread.hpp 3.3Main.cc主函数的编写 3.4Task.hpp function包装器的使用 一、环形队列的概念及定义 此处的环形队列并不是一个真正意义上的环&#xff0c;而是通过对容…

如何集成CppCheck到visual studio中

1.CPPCheck安装 在Cppcheck官方网站下载最新版本1.70&#xff0c;官网链接&#xff1a;http://cppcheck.sourceforge.net/ 安装Cppcheck 2.集成步骤 打开VS&#xff0c;菜单栏工具->外部工具->添加&#xff0c;按照下图设置&#xff0c;记得勾选“使用输出窗口” 2.…

AcWing算法基础课笔记——状态压缩DP:蒙德里安的梦想

状态压缩DP 状态是整数&#xff0c;但把它看成二进制数&#xff0c;二进制中每一位是0或1表示不同的情况。 蒙德里安的梦想 291. 蒙德里安的梦想 - AcWing题库 题目 求把 NM&#x1d441;&#x1d440; 的棋盘分割成若干个 1212 的长方形&#xff0c;有多少种方案。 例如…

算法训练营day19--530.二叉搜索树的最小绝对差+501.二叉搜索树中的众数+236. 二叉树的最近公共祖先

一、530.二叉搜索树的最小绝对差 题目链接&#xff1a;https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 文章讲解&#xff1a;https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF…

Lobe Chat openai claude

claude-3-5-sonnet-20240620 $ docker run -d -p 3210:3210 \-e OPENAI_API_KEYsk-xxxx \-e OPENAI_PROXY_URLhttps://api-proxy.com/v1 \-e ACCESS_CODElobe66 \--name lobe-chat \lobehub/lobe-chatDocker 部署 更新 docker ps CONTAINER ID IMAGE …

【Playwright+Python】手把手带你写一个自动化测试脚本

如何使用代理方式打开网页 在 playwright.chromium.launch() 中传入 proxy 参数即可&#xff0c;示例代码如下&#xff1a; 1、同步写法&#xff1a; from playwright.sync_api import sync_playwrightproxy {server: http:/127.0.0.1:8080}def run():with sync_playwright(…

18.枚举

学习知识&#xff1a;枚举类型、相关的使用方法 Main.java&#xff1a; public class Main {public static void main(String[] args) {myenum[] colorlist myenum.values();//获取枚举中所有对象的引用数组for (myenum one : colorlist){System.out.println(one.toString(…

fork 是一个创建新进程的系统调用

在计算机科学中&#xff0c;fork 是一个创建新进程的系统调用。具体来说&#xff0c;fork 调用会创建一个与当前进程几乎完全相同的副本&#xff0c;包括父进程的内存布局、环境变量、打开的文件描述符等。这个新的进程被称为子进程&#xff0c;而原始进程被称为父进程。 以下…

汇聚荣做拼多多电商怎么运营?

在探讨如何有效运营拼多多电商平台时&#xff0c;我们需要首先明确一个核心问题&#xff1a;如何在竞争激烈的市场中突出重围&#xff0c;吸引并留住消费者。接下来&#xff0c;我们将从五个方面深入剖析这一核心内容&#xff0c;确保每一步都精准有效&#xff0c;以白话文的形…

ATFX汇市:加拿大5月CPI数据来袭,USDCAD逼近关键点位

ATFX汇市&#xff1a;今日20:30&#xff0c;加拿大统计局将公布5月未季调CPI年率&#xff0c;前值为2.7%&#xff0c;预期值2.6%&#xff0c;预期将下降0.1个百分点&#xff1b;同一时间公布的还有加拿大5月核心CPI年率&#xff0c;前值为1.6%&#xff0c;低于2%的温和通胀标准…

【Chapter7】虚拟存储系统,计算机操作系统教程,第四版,左万利,王英

文章目录 [toc]零、前言一、外存资源管理1.1 外存空间划分1.2 外存空间分配1.2.1 空闲块链(慢)1.2.2 空闲块表(UNIX)1.2.3 字位映像图 1.3 进程与外存对应关系 二、虚拟页式存储系统2.1 基本原理2.2 内存页框分配策略2.3 外存块的分配策略2.4 页面调入时机2.5 置换算法2.5.1 最…

Transformer的诞生和崛起

智能问答与文本生成&#xff1a;Transformer模型的超能力 ©作者|wy 来源|神州问学 一、引言 NLP&#xff08;自然语言处理&#xff09;作为人工智能领域的一个重要分支&#xff0c;致力于使计算机能够理解和处理人类语言。随着互联网的发展和信息时代的到来&#xff0c;…

docker 容器设置中文环境

1.容器中安装和设置 1.1.进入容器查看已有语言包 locale -a 默认情况下&#xff1a; 1.2 安装中文语言环境 如果没有zh_CN.utf8就安装。 方式1&#xff1a; #直接安装中文语言包 apt-get install -y language-pack-zh-hans 方式2&#xff1a; #安装中文语言环境 apt-g…

系统初始化进程与文件、systemd概述、单元类型、切换运行级别、查看系统默认默认运行、永久切换、常见的系统服务(centos)

init进程 init进程是Linux系统&#xff08;“/sbin/init”&#xff09;中的第一个进程&#xff0c;它是所有其他进程的祖先进程。init进程的进程号&#xff08;PID&#xff09;始终为1。它负责启动和停止系统中的所有其他进程&#xff0c;以及处理系统的各种系统级任务。 ini…

大模型系列之被我忽视的Assistants API

前言 在这篇文章中&#xff0c;我们提到在GPT4.0 turbo发布时&#xff0c;GPTs和Assistants API的出现使得众多创业者一夜无眠。当时看完之后就被我丢到一边&#xff0c;并没有太多关注&#xff0c;随着我们对RAG和Agent的不断深入了解&#xff0c;蓦然回首&#xff0c;越发感…

HarmonyOS Next开发学习手册——通过startAbility拉起文件处理类应用

使用场景 开发者可以通过调用startAbility接口&#xff0c;由系统从已安装的应用中寻找符合要求的应用来实现打开特定文件的意图&#xff0c;例如&#xff1a;浏览器下应用下载PDF文件&#xff0c;可以调用此接口选择文件处理应用打开此PDF文件。开发者需要在请求中设置待打开…

Redis-实战篇-什么是缓存-添加redis缓存

文章目录 1、什么是缓存2、添加商户缓存3、前端接口4、ShopController.java5、ShopServiceImpl.java6、RedisConstants.java7、查看Redis Desktop Manager 1、什么是缓存 缓存就是数据交换的缓冲区&#xff08;称为Cache&#xff09;&#xff0c;是存贮数据的临时地方&#xff…