一、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容器,
//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
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