修改NAS上已经部署docker的环境变量

2024-08-11 00:36:16 6点赞 50收藏 7评论

一年前按照张大妈的教程在nas上部署了管理密码的VaultWarden(Bitwarden),运行一直很稳定,终于不用记那么多密码了。最近突然发现一直处于开放注册的状态,虽然个人nas不太会被注意到,但毕竟是个小小的隐患。在官方的说明文档中搜索到,可以通过添加一个环境变量来禁止新用户注册。遗憾的是我所使用的威联通不支持在web页面对已经部署的docker的环境变量进行修改,官方售后建议我重新部署,这个docker已经用了一年了,重新折腾又嫌麻烦。不过因为它的系统是基于Linux的,一顿搜索之后,发现可以通过SSH连接来修改docker对应的config文件来达到修改环境变量的效果。同样的方法也可以用在其他docker中,来修改已经部署的docker的环境变量。

这是VaultWarden修改前的环境变量,我们需要在其中添加一个值为“false”的“SIGNUPS_ALLOWED”环境变量来禁止新用户注册。

VaultWarden修改前的环境变量VaultWarden修改前的环境变量

首先需要查看一下需要修改的docker的ID。在威联通的Container Station中,单机对应的docker名称,可以在右侧的容器详细信息中看到ID(我这个是e9630940995d3e......),记下这个ID,在后续的操作中需要用到。然后点击停止按钮,停止该docker。

查看docker ID查看docker ID

接下来需要在nas上允许SSH连接。在“控制台-网络和文件服务-Telnet/SSH”中,勾选“允许SSH连接”,端口号可以用默认的22,也可以修改成其他端口,记得做好路由器的端口转发。

开启SSH开启SSH

下载SSH连接工具PuTTY,官网链接在这里。运行后在Host Name和Port处填写nas的地址和刚才设置的端口号,回车或者点击下方的Open按钮。

PuTTY界面PuTTY界面

连接后会提示login as:,这里需要输入administrators组的账号,账号输入完毕后回车,按照提示输入密码(输入密码时不会显示字符),输入完毕后回车。

SSH登录SSH登录

如果是admin账户登录,则会显示下方菜单:

Console Management菜单Console Management菜单

输入Q回车,按y回车确认即可回到常见的命令模式。

确认返回shell环境确认返回shell环境

如果是非admin的administrators组账户则直接进行后续操作。

首先要找到docker所在的目录,输入如下命令:

docker info | grep 'Docker Root'

回车后可以看到docker的路径。然后用cd命令转到这个路径:

cd /share/CACHEDEV1_DATA/Container/container-station-data/lib/docker

查找并跳转到docker目录查找并跳转到docker目录

输入ls命令查看该路径下的所有文件和文件夹,应该会有一个“containers”的文件夹,用cd命令跳转到该文件夹,然后再输入ls命令,可以看到有一个或者多个由字母和数字组成的很长的文件夹,找到之前查看的docker ID,用cd命令跳转到这个文件夹中。

进入文件夹后用ls命令可以看到目录中的文件,其中应该有一个名为config开头,后缀为json的文件,我这个是config.v2.json。用如下命令打开(如提示需要输入密码则输入密码后回车),然后按字母 i 进行编辑:

sudo vim config.v2.json

编辑json文件编辑json文件

用左右方向键找到环境变量参数所在的位置,格式为:

“ENV”:["变量名称1=变量值1","变量名称2=变量值2"]

按照此格式添加所需要的变量名称和值后,按ESC键退出编辑,输入“:wq”回车保存文件并退出。

修改完毕后输入exit退出SSH连接,重启nas即可生效。重启后查看Container Station中的docker环境变量,可以看到新的环境变量已经添加进来了:

新添加的环境变量新添加的环境变量

测试一下注册新账户,提示错误:

已禁止新用户注册已禁止新用户注册

以上就是对已经部署好的docker环境变量的修改方法,希望对跟我一样不熟悉Linux的小白们有所帮助,如果大佬们有更好的办法还请不吝赐教修改NAS上已经部署docker的环境变量

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
7评论

  • 精彩
  • 最新
  • unraid停止docker直接修改,改完以后在启动docker服务,是整个docker不是你单个服务

    校验提示文案

    提交
    大佬可以说的详细一点吗?我停止之后没找到修改环境变量的地方,只能修改docker名称、网络设置这些

    校验提示文案

    提交
    停止docker后,直接控制页也有个添加参数的地方,没必要那么麻烦

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 你点右上角那个编辑不行吗 [高兴] 就算是重新创建,只要持久化目录映射不变,理论上是无损覆盖重建的

    校验提示文案

    提交
  • 每天学习一个新知识。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
50
扫一下,分享更方便,购买更轻松