<br />
<br />
Docker版Ubuntu 部署openwrt编译服务器教程
前言:PVE系统盘有限,又不想装个额外的虚拟机或者物理机的ubuntu,于是乎就想了用docker版ubuntu来编译
具体教程步骤如下:
具体环境,PVE下虚拟化的飞牛OS
一、 拉取镜像 docker pull ubuntu
二、 建立镜像
不建议用webui来部署,因为一启动如果ubuntu没有在运行的进程就会自己停止,所以我用了命令行。
docker run --name 容器名字 -ti -v /宿主文件夹:/镜像文件夹 -d -p 8022(自己设端口号):22 ubuntu
映射端口看自己喜欢,文件弄个映射是万一没有合适的工具(类似winscp这种)还可以命令行黏贴后拷贝出来
三、 进入ubuntu系统,并更新系统
进系统有这么几种方法:
- 通过飞牛的终端进入/bin/bash,如果用portainer等webui也可以进入


- 通过命令行进入 SSH输入:docker exec -t -i 新建容器的名字 /bin/bash
第一步,因为是精简系统,大小才60M左右,所以基本上工具都没有的,需要先更新系统,输入 apt-get update。由于连ssh还有vim都没有所以一开始的更新只能从国外服务器更新,速度很慢。。。。。要有心理准备。
第二步,同样原因,所以我建议先安装vim 命令 apt-get install vim
第三步,先换源,换国内源就行,个人觉得阿里的比较快。
1.备份源配置文件,本身在root下所以不需要sudo了
cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
- 编辑源配置文件
vim /etc/apt/sources.list.d/ubuntu.sources
用#禁用相关源地址
然后黏贴入以下内容:
Types: deb
URIs: http://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
第四步、安装ssh服务
apt-get install openssh-client
apt-get install openssh-server
修改root的密码及ssh链接权限
-
改root密码,输入passwd root,再输两次密码(屏幕不显示)就好了
-
改链接权限 输入vi /etc/ssh/sshd\_config 找到 #PermitRootLogin prohibit-password 改为PermitRootLogin yes
-
启动 ssh服务 输入/etc/init.d/ssh start 如果在安装完ssh的时候就运行过了,那么需要重启ssh服务service ssh restart
-
安装net-tools的安装包 apt-get install net-tools 可以查看ip
第五步,新建用户
此时已经可以用SSH 链接docker映射的端口来控制ubuntu了,由于编译需要在非root账户运行,需要适用adduser命令新建一个账户
四、 安装编译环境并拉取项目
以LEDE项目为例子,此处感谢lean大佬的奉献项目地址:https://github.com/coolsnowwolf/lede
安装依赖如果在root账户下不需要sudo ,
-
安装依赖
apt update -y
apt full-upgrade -y
apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache clang cmake cpio curl device-tree-compiler flex gawk gcc-multilib g++-multilib gettext \
genisoimage git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev \
libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev \
libreadline-dev libssl-dev libtool llvm lrzsz msmtp ninja-build p7zip p7zip-full patch pkgconf \
python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion \
swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
-
下载源代码,更新 feeds 并选择配置,需要在普通用户下
git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
-
首次编译,建议单线程
make download -j8
make V=s -j1
-
二次编译
cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make V=s -j\$(nproc)
如果需要重新配置:
rm -rf .config
make menuconfig
make V=s -j\$(nproc)
编译完成后输出路径:bin/targets
五、 可以保存修改的镜像
docker commit [容器ID/容器名] [REPOSITORY:TAG]