文章说明:介绍在vyos软路由上配置container容器,vyos最新滚动版1.5已经支持在vyos命令行中启动docker容器,在vyos官网介绍是说1.3版本之后就都有这个功能了,如果你的版本是1.3之后的可以玩container,接下来介绍怎么创建容器,比如搭建一个Halo博客。
一、vyos安装 {#一-vyos安装}
二、vyos基本配置 {#二-vyos基本配置}
三、拉取镜像 {#三-拉取镜像}
vyos拉取容器镜像其实跟docker命令的pull原理一样,只不过是换了命令而已,拉取容器镜像的地址一般都是用docker官网的(docker.io)或者github镜像站(ghcr.io),俩个镜像站可能都需要魔法才能正常访问。
3.1、查看镜像命令 {#3-1-查看镜像命令}
可以看到当前没有镜像文件
show container image
3.2、方法一 {#3-2-方法一}
方法一使用podman方式测试拉取halo-plus:1.1.4版本镜像,拉取镜像前默认你的vyos已经按照第二步基本配置中都设置好了,主要是上网和dns,不然拉取镜像时会报错。
sudo podman image pull docker.io/nineya/halo-plus:1.1.4
查看镜像,可以看到镜像已经拉取成功。
show container image
3.2、方法二 {#3-2-方法二}
方法二使用vyos内置的命令拉取容器镜像,比如演示拉取halo-plus:1.1.2版本镜像,通过show命令可以看到,拉取成功。
add container image docker.io/nineya/halo-plus:1.1.2
四、删除镜像 {#四-删除镜像}
比如我们要删除halo-plus:1.1.2镜像,可以使用下面的命令删除,IMAGE ID 需要使用自己的,正常情况我们的都不一样。
delete container image 537ad1833bf1
再次查看当前镜像文件,halo-plus:1.1.2版本已经删除了。
show container image
五、创建容器 {#五-创建容器}
在vyos中创建一个容器前,需要先创建要容器外卷存储的位置,比如我们要创建halo-plus,首先我们要创建好halo-plus的配置文件夹(.halo-plus)。
5.1、创建卷 {#5-1-创建卷}
sudo mkdir -p /home/vyos/halo-plus;cd /home/vyos/halo-plus;sudo mkdir .halo-plus
pwd #查看当前路径
ls -al #查看.halo-plus是否创建成功,下面配置容器外部卷需要使用
5.2、配置容器镜像 {#5-2-配置容器镜像}
创建halo容器使用halo-plus:1.1.4镜像。
configure #配置模式
set container name halo image 'docker.io/nineya/halo-plus:1.1.4'
5.3、配置容器网络 {#5-3-配置容器网络}
允许容器与主机共享网络。
set container name halo allow-host-networks
5.4、配置容器名称 {#5-4-配置容器名称}
set container name halo host-name halo-plus
5.5、配置容器状态 {#5-5-配置容器状态}
当halo容器失败时,Docker 将自动重启halo容器,并始终保持运行状态。
set container name halo restart always
5.6、配置容器内部卷 {#5-6-配置容器内部卷}
set container name halo volume halo destination '/root/.halo-plus'
5.7、配置容器外部卷 {#5-7-配置容器外部卷}
set container name halo volume halo source '/home/vyos/halo-plus/.halo-plus'
commit #应用以上配置
save #保存配置到config.boot开机启动配置文件中
六、查看容器状态 {#六-查看容器状态}
halo容器正常启动,显示UP状态。
run show container
七、查看容器日志 {#七-查看容器日志}
可以看到容器完整启动日志,最后显示halo-plus已经start。
run show container log halo