前言
家里的 NAS 里之前装了一个宝塔官方版的 Docker 镜像,基于CentOS的,
体积1.7G不说,总是有一些小毛病,之前一直将就着用,终于我忍无可忍,无需再忍。决定自己从头搭一个纯净的环境。
Docker 安装Ubuntu
直接使用最新版的 ubuntu:latest
映像,大概74MB左右。
我自己的映射如下:
-p 1022:22 -p 8888:8888 -p 8080:80 -p 1443:443
// 分别对应 ssh 宝塔 http https端口
-v /docker/baota/wwwroot:/www/wwwroot
-v /docker/baota/mysql:/www/server/data
// 分别对应 wwwroot 网站目录和 mysql 数据目录
启动后进入容器内终端,安装 ssh 等常用的服务:
apt-get update
apt-get install vim
apt-get install openssh-server openssh-client
启动 ssh 服务
/etc/init.d/ssh start
允许 root 账户登录
vim /etc/ssh/sshd_config
# 增加一行
PermitRootLogin yes
修改后重启 ssh 服务
service ssh restart
设置 root 账户密码
passwd root
此时,可以退出 docker 终端机,使用 ssh 连接(注意 ssh 端口在上面 已经修改成了1022)
安装宝塔环境
宝塔的广告越来越多,导致我越来越厌恶宝塔了,直到我发现了还有宝塔开心版,我又重新爱上宝塔了。
ssh 中安装你想要安装的宝塔,之后静等安装完成(也许是这个 Ubuntu 的镜像比较干净,有一些组件系统都没有自带,所以安装时间比平时久一点)。
安装后,由于现在的宝塔面板是随机端口,我们当时映射了 8888 端口,所以需要手动修改端口成8888:
bt 8
# 然后提示输入新的端口号
安装Pip3
此时系统内已经包含 Python3 ,但是还有没有 pip3 ,如果你用得到的话,可以自行安装
apt install python3-pip
开机自启动
由于 Docker 内是没办法执行 systemctl
的,所以很多开机启动的任务都没法设置,这里我们通过修改 .bashrc
来间接实现开机自动启动。
新建一个开机启动任务的脚本
cd /root
touch startSh.sh
chmod +x startSh.sh
vim startSh.sh
在 .bashrc
中,因为开机和 ssh 登录都会执行,所以在这个脚本中,通过检测下 ssh 服务没有运行的时候才继续执行,脚本内容如下:
#!/bin/bash
status=$(service ssh status)
if [[ "$status" == *"not running"* ]]; then
service ssh start # 启动 ssh 服务
bt start # 启动宝塔
# 启动 web 服务
/etc/init.d/nginx start
/etc/init.d/mysqld start
/etc/init.d/redis start
fi
最后把脚本加在.bashrc
的最后一行
if [ -f /root/startSh.sh ]; then
/root/startSh.sh
fi
到这里,基本没什么大问题了,如果有什么毛病欢迎留言指导。