学习心得 · 2023年5月31日 0

Linux安装docker和NPM反向代理(Nginx proxy manager)



Nginx Proxy Manager
Nginx proxy manager是一个很简单的反向代理工具。

官网:https://nginxproxymanager.com/

开始部署

服务器环境:Debian 10(Ubuntu 20.04也可以)或以上版本

添加SWAP虚拟内存

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

设置 SWAP 可以用脚本:

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

选择 18,然后输入你想要扩容的数值即可。

系统升级 packages

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

安装 Docker 环境(非国内服务器)

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

安装 Docker-compose(非国内服务器)

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 版本

安装 Docker和Docker-compose(国内服务器)

curl -sSL https://get.daocloud.io/docker | sh
docker -v  #查看 docker 版本
systemctl enable docker  # 设置开机自动启动
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.1.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version  #查看 docker-compose 版本

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):

cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
}
EOF

然后重启 Docker 服务

systemctl restart docker

安装 Nginx Proxy Manager

创建安装目录

sudo -i
mkdir -p /root/data/docker_data/npm
cd /root/data/docker_data/npm
vim docker-compose.yml

英文输入法下,按 i

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'  # 冒号左边可以改成自己服务器未被占用的端口
      - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口
      - '443:443' # 冒号左边可以改成自己服务器未被占用的端口
    volumes:
      - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
      - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中

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

运行并访问 Nginx Proxy Manager

cd /root/data/docker_data/npm   # 来到 dockercompose 文件所在的文件夹下
docker-compose up -d 

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

Email:    [email protected]
Password: changeme

注意:

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

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