绿联云1Panel Docker重启后一直加载怎么办?
前言
之前在绿联NAS安装1Panel,强化你的NAS!这篇文章中,使用Docker部署了1Panel。
但是在使用过程中出现了一个让我很头疼的问题,就是NAS重启(其实应该算到容器重启的头上),有时候断电,或者NAS系统升级重启后,我的1Panel容器也会随着重启。
容器本就应该重启没问题,但是1Panel面板出故障了,每次1Panel容器一重启,进入1Panel Web面板就会卡在刷新(没了解具体原因),在容器终端输入1pctl restart all就能解决。
但是我无法知晓我的容器在什么时候重启了,并且,就算我能知道,每次重启我都要到终端执行一下这个命令也太麻烦了,这里记录下如何解决这样的问题。
开始前的说明
我的1Panel容器是基于docker.io/koryking/1panel:latest这个镜像构建,这个容器默认不支持1pctl指令。
通过绿联NAS安装1Panel,强化你的NAS!的步骤后,我的的1Panel镜像,在终端能够执行下面的指令了(1Panel命令行工具,确保你的容器也能够执行)
1 | # 重启1Panel面板 |
正常来讲,执行了这个指令,1Panel Web面板就能够正常使用了,但是我们想要容器在启动的时候就执行这个指令还需要有点儿操作。
导出镜像
docker.io/koryking/1panel:latest这个镜像默认目前是不带1pctl命令的,1pctl是在我们对容器进行一些操作后才支持的命令,所以我们需要重新从一个支持1pctl的镜像构建容器。
使用下面的命令直接将1Panel容器提交为镜像(我这里导出的镜像名为insectmk/1panel):
1 | # 提交当前容器为新的镜像,我的容器名是1panel,提交的镜像名可以自定义 |
Docker-Compose
停掉Compose
停掉之前的Docker-Compose,如果是绿联云NAS的Docker项目部署的,直接在Docker->项目中操作就行。
先停止项目,然后再删除项目就行。
如果是普通终端管理Docker,进入到docker-compose.yml所在的目录,执行以下命令就行:
1 | # 停掉容器 |
编辑Compose
编辑docker-compose.yml,替换为新的镜像,并写入command配置以在容器启动时自动执行指令(环境变量这里没改过,但是可能是失效的,用的是之前构建镜像时的配置。PS:猜想,可以自己试试):
1 | services: |
启动Compose
如果是绿联NAS,进入Docker->项目->创建,选择之前1Panel目录,提示该路径已存在Compose配置,请重新选择路径或**导入该配置**,点击导入该配置,点击立即部署。
如果是普通终端管理Docker,进入到docker-compose.yml所在的目录,执行以下命令就行:
1 | # 重启编排 |
验证
1Panel容器启动成功后,看看是否可以正常访问,可以正常访问后再重启容器访问试试。



