一个NAS也能玩出花来?记一次折腾拾光坞容器的过程
大约在去年3月份左右,我爸买了一个拾光坞NAS,其中里面就含有Docker的功能。当时因为高三,就没有去怎么折腾。最近由于开始接触Linux系统,便想到了NAS里面有个容器的功能,便想着去利用一下。
部署容器
虽说拾光坞自带有一个ubuntu的镜像,但是自动部署不会挂载NAS磁盘,不能满足我的需求,手动部署又不知道怎么回事会报错,故本人使用了在拾光坞镜像商店中的centos镜像。
镜像下载并导入完成后,在镜像管理处点击创建容器
根据自己的需要开放端口,挂载存储等,并进行创建和启动容器。
创建完成后,在拾光坞客户端内进入容器
使用容器
由于我需要在容器内部署一些项目,所以我想将Docker当作正常的操作系统使用,但由于Docker镜像较为精简,故我便直接装了一个宝塔,在宝塔安装的时候会补上部分组件缺失的问题。
补全基本组件
1.补全基本命令
yum install -y sudo
yum install -y passwd
yum install -y which
2.启用SSH
首先通过命令yum install openssh-server -y
安装SSH服务
输入命令/usr/sbin/sshd
,会发现文件缺失
直接将另一个Linux系统中的key文件放入即可
再次运行,又提示文件权限过高
使用chmod命令修改权限为600即可
若没有报错,则ssh启动成功,使用sudo passwd root
命令修改密码即可
若使用SSH工具连接提示"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)."
执行命令sudo sed -i -r 's/^(.*pam_nologin.so)/#\1/' /etc/pam.d/sshd
即可
3.设置开机自启动
在任意目录下创建一个ssh脚本,并授予该文件可执行权限
touch /root/start.sh
chmod +x /root/start.sh
将你要执行的命令写在脚本中,这里以启动SSH服务为例,内容如下
/usr/sbin/sshd
接着去修改/root/.bashrc文件,在末尾处添加如下内容即可实现脚本开机自启
# startup run
if [ -f /root/start.sh ]; then
/root/start.sh
else
echo "start.sh does not exist in /root directory"
fi
(虽说本人后来发现这样的话其实是每次连接SSH都会执行,后面有空再想办法)
如果想隐藏命令执行日志的话,在命令后面加上> /dev/null 2>&1 &
就行
4.其他乱七八糟的情况修复
1.执行yum命令报Module yaml error: Unexpected key in data: static_context [line 9 col 3]
执行dnf upgrade libmodulemd
即可
2.时区调整
在容器中不能使用timedatectl set-timezone Asia/Shanghai
调整,会报错
原因是容器的PID 1不是systemd,无法使用systemd管理器,使用如下命令修改即可
echo "Asia/Shanghai" > /etc/timezone
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime