OAI-5G学习笔记1(搭建5G核心网)
Environment="HTTP_PROXY=http://your-proxy:port/"# 这里的your-proxy:port改为查到的代理服务地址。Environment="HTTPS_PROXY=http://your-proxy:port/"# 这里的your-proxy:port改为查到的代理服务地址。从 Docker 官方下载 GPG 签名公钥,用于验证 Docker 包的来源
设备:ubuntu24.04
步骤解释:
1. 安装常用工具
sudo apt install -y git net-tools putty
-
git
→ 代码管理工具,用于克隆仓库。 -
net-tools
→ 包含ifconfig
、netstat
等经典网络命令(新系统默认没有)。 -
putty
→ SSH/Telnet 客户端(在 Linux 上用得少,主要是 Windows 常用)。 -
-y
→ 自动确认,不需要手动输入y
。
2. 更新 apt 包索引
sudo apt update
3. 安装依赖
sudo apt install -y ca-certificates curl
-
ca-certificates
→ 系统根证书,确保 HTTPS 请求能验证对方身份。 -
curl
→ 下载工具,用来获取 Docker 官方 GPG key。
4. 创建 apt keyrings 目录
sudo install -m 0755 -d /etc/apt/keyrings
-
在
/etc/apt/keyrings
下创建目录,权限 0755(所有人可读,只有 root 可写)。 -
apt 推荐把第三方仓库的 GPG key 放到这里,而不是老版本的
/etc/apt/trusted.gpg
。
5. 下载 Docker 官方 GPG key
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
-
从 Docker 官方下载 GPG 签名公钥,用于验证 Docker 包的来源。
-
保存到
/etc/apt/keyrings/docker.asc
。
这一步可能出现问题:
多尝试几次就好,可以去 /etc/apt/keyrings路径中看docker.asc是否成功保存。
6. 修改 GPG key 文件权限
sudo chmod a+r /etc/apt/keyrings/docker.asc
让所有用户都能读取 key 文件,否则 apt 可能没权限验证签名。
7. 添加 Docker 官方 apt 源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
dpkg --print-architecture
→ 获取系统架构,比如amd64
、arm64
。 -
. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}"
→ 获取 Ubuntu 代号,比如jammy
(22.04)、focal
(20.04)。 -
signed-by=/etc/apt/keyrings/docker.asc
→ 指定用刚才下载的 GPG key 验证。 -
把完整配置写到
/etc/apt/sources.list.d/docker.list
,这样 apt 就知道从哪里下载 Docker 包。
8. 更新 apt
sudo apt update
9. 安装 Docker 相关组件
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-
docker-ce
→ Docker 社区版引擎。 -
docker-ce-cli
→ Docker 命令行工具。 -
containerd.io
→ 容器运行时(Docker 底层依赖)。 -
docker-buildx-plugin
→docker buildx
扩展,支持多架构构建。 -
docker-compose-plugin
→docker compose
子命令(新版 Compose 插件)。
10.把当前用户加入 docker
用户组
sudo usermod -a -G docker $(whoami)
把当前用户加入 docker
组,就能直接用 docker
命令,而不用每次写 sudo
。
11.重启
reboot
-
用户组权限修改要在重新登录后才生效。
-
重启机器后,你的用户就能直接运行
docker ps
等命令了。
12.下载OAI CN5G 配置文件
wget -O ~/oai-cn5g.zip https://gitlab.eurecom.fr/oai/openairinterface5g/-/archive/develop/openairinterface5g-develop.zip?path=doc/tutorial_resources/oai-cn5g
-
wget
→ 下载文件工具。 -
-O ~/oai-cn5g.zip
→ 把下载的文件保存到~/oai-cn5g.zip
。 -
URL → 这是 OAI GitLab 上
openairinterface5g
项目develop
分支的一个 部分源码压缩包,只包含doc/tutorial_resources/oai-cn5g
这个路径。
13.解压 zip
unzip ~/oai-cn5g.zip
14.移动资源目录
mv ~/openairinterface5g-develop-doc-tutorial_resources-oai-cn5g/doc/tutorial_resources/oai-cn5g ~/oai-cn5g
15.删除临时文件
rm -r ~/openairinterface5g-develop-doc-tutorial_resources-oai-cn5g ~/oai-cn5g.zip
最后只保留 ~/oai-cn5g
。
16.拉取镜像
cd ~/oai-cn5g
docker compose pull
如果挂了梯子,那么这一步大概率出问题,因为docker不会走我们设置的代理,因此会出现类似下图的网络错误:
解决办法:为docker设置我们的代理:
(1)查看自己梯子的代理地址和端口:
(2)创建系统d目录:
sudo mkdir -p /etc/systemd/system/docker.service.d
(3)创建代理配置文件:
sudo nano /etc/systemd/system/docker.service.d/proxy.conf
(4)在文件中添加:
[Service]
Environment="HTTP_PROXY=http://your-proxy:port/" # 这里的your-proxy:port改为查到的代理服务地址
Environment="HTTPS_PROXY=http://your-proxy:port/" # 这里的your-proxy:port改为查到的代理服务地址
Environment="NO_PROXY=localhost,
127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12" # 排除了本地回环和局域内网
例如我的写为:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7897/"
Environment="HTTPS_PROXY=http://127.0.0.1:7897/"
Environment="NO_PROXY=localhost,127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12"
按 Ctrl+O 保存,按 Enter 确认,再按 Ctrl+X 退出。
(5)重启 Docker:
sudo systemctl daemon-reexec
sudo systemctl restart docker
(6)验证 Docker 是否走代理:
docker info | grep -i proxy
出现与设置一致的结果:
(7)再次尝试拉取:
docker compose pull
拉取成功:
17.启动OAI CN5G
cd ~/oai-cn5g
docker compose up -d
18.停止OAI CN5G
cd ~/oai-cn5g
docker compose down
更多推荐
所有评论(0)