升级 packages

1
2
3
4
5
sudo -i # 切换到 root 用户

apt update -y # 升级 packages

apt install wget curl sudo vim git -y # Debian 系统比较干净,安装常用的软件

添加SWAP虚拟内存

注意:VPS 的内存如果过小,建议设置一下 SWAP,一般为内存的 1-1.5 倍即可,可以让系统运行更流畅!
设置 SWAP 可以用脚本:

1
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh

选择18,然后输入你想要扩容的数值即可(一般为内存的 1-1.5 倍即可)。

安装 Docker 环境

安装 Docker(非大陆服务器) 预览

1
2
3
wget -qO- get.docker.com | bash
docker -v #查看 docker 版本
systemctl enable docker # 设置开机自动启动

安装 Docker-compose(非大陆服务器) 预览

1
2
3
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version #查看 docker-compose 版本

安装 Nginx Proxy Manager

创建安装目录
创建一下安装的目录:

1
2
3
4
5
sudo -i

mkdir -p /root/data/docker_data/npm

cd /root/data/docker_data/npm

这边我们直接用 docker 的方式安装。

1
vim docker-compose.yml

英文输入法下,按 i

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80' # 保持默认即可,不建议修改左侧的80
- '81:81' # 冒号左边可以改成自己服务器未被占用的端口
- '443:443' # 保持默认即可,不建议修改左侧的443
volumes:
- ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
- ./letsencrypt:/etc/letsencrypt # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

按一下 esc,然后 :wq 保存退出,之后,

打开防火墙的端口 81
查看端口是否被占用(以 81 为例),输入:

1
lsof -i:81  #查看 81 端口是否被占用,如果被占用,重新自定义一个端口

如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~

如果出现:

1
-bash: lsof: command not found

运行:

1
apt install lsof  #安装 lsof

如果端口没有被占用(被占用了就修改一下端口,比如改成 82,注意 docker 命令行里和防火墙都要改)

运行并访问 Nginx Proxy Manager

最后:

1
2
3
cd /root/data/docker_data/npm   # 来到 dockercompose 文件所在的文件夹下

docker-compose up -d

理论上我们就可以输入http://ip:81 访问了。

默认登陆名和密码:

1
2
Email:    admin@example.com
Password: changeme

注意:

1、不知道服务器 IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的 IP。

2、遇到访问不了的情况,请再次检查在宝塔面板的防火墙和服务商的后台防火墙是否打开对应了端口。

更新 Nginx Proxy Manager

1
2
3
4
5
6
7
8
9
10
11
cd /root/data/docker_data/npm

docker-compose down

cp -r /root/data/docker_data/npm /root/data/docker_data/npm.archive # 万事先备份,以防万一

docker-compose pull

docker-compose up -d # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

1
2
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]

输入 y

利用 Docker 搭建的应用,更新非常容易~

卸载 Nginx Proxy Manager

1
2
3
4
5
cd /root/data/docker_data/npm

docker-compose down

rm -rf /root/data/docker_data/npm # 完全删除映射到本地的数据

可以卸载得很干净。