1 购买VPS
前几天腾讯云三周年购买了一台年抛轻量应用服务器。配置2H2G40G,58一年。国内的机子搭建网站需要备案,于是就搭建一些docker应用程序,相当于学习了。
腾讯云可以选择使用docker容器镜像重装系统,使用这个重装系统下面服务端就不需要再安装docker了:
2 搭建过程
2.1 搭建frp服务端
下载docker:
curl -sSL https://get.docker.com/ | sh下载docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version创建frp目录:
sudo -i
mkdir -p /root/data/docker_data/frps
cd /root/data/docker_data/frps
创建docker-compose:
touch frps.ini
vim docker-compose.ymlversion: '3.3'services: frps: restart: always network_mode: host volumes: - './frps.ini:/etc/frp/frps.ini' container_name: frps image: snowdreamtech/frps
配置 frps.ini文件:
[common]
#frp 监听端口,与客户端绑定端口
bind_port= 5443kcp_bind_port = 5443
#dashboard用户名
dashboard_user= zhenxi
#dashboard密码
dashboard_pwd= passwd
#dashboard端口,启动成功后可通过浏览器访问如http://ip:9527
dashboard_port= 9527
#设置客户端token,对应客户端有页需要配置一定要记住,如果客户端不填写你连不上服务端
token = 8ad3d1x429a2d131411
启动frp服务端:
docker-compose up -d
查看docker运行情况:
docker ps
通过IP加端口访问frp:
http://公网IP:9527记得打开防火墙,放开端口。
直接安装下面的选择即可:
2.2 搭建frp客户端
下载docker:
curl -sSL https://get.docker.com/ | sh下载docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version
创建frp客户端文件:
mkdir -p /root/data/docker_data/frpccd /root/data/docker_data/frpctouch frpc.inivim docker-compose.yml编写docker-compose配置文件:
version: '3.3'services: frpc: restart: always network_mode: host volumes: - './frpc.ini:/etc/frp/frpc.ini' container_name: frpc image: snowdreamtech/frpc编写frpc初始化文件:
vim frpc.ini[common]server_addr = 43.143.174.4 # 更改为服务器IPserver_port = 5443 # 更改为服务端端口token = 8ad3d1x429a2d131411 # 和服务端的token一致
[ssh]type = tcplocal_ip = 127.0.0.1local_port = 222 # 可更改为内网某个应用程序的访问端口# 这个自定义,之后再ssh连接的时候要用remote_port = 6000 # 通过服务器IP访问内网的端口号,也就是通过这个端口来访问内网的端口
[京东至臻链]type = tcplocal_ip = 127.0.0.1local_port = 8080remote_port = 6001use_encryption = trueuse_compression = true启动frp客户端docker:
docker-compose up -d
frp后台显示:
使用服务器IP+端口访问内网部署的项目:
3 反向代理
3.1 安装 Nginx Proxy Manager
创建一下安装的目录:
sudo -i
mkdir -p /root/data/docker_data/npm
cd /root/data/docker_data/npm这边我们直接用 docker 的方式安装。
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 保存退出。
3.2 运行并访问 Nginx Proxy Manager
最后:
cd /root/data/docker_data/npm # 来到 dockercompose 文件所在的文件夹下
docker-compose up -d理论上我们就可以输入 http://ip:81 访问了。
默认登陆名和密码:
Email: admin@example.comPassword: changeme登录成功之后进行密码更改:
3.3 配置反向代理
先解析域名:
阿里云解析:
Cloudflare解析:
点击Proxy Hosts:
配置反向代理:
申请免费证书:
打开SSL:
这样就可以通过https://域名来访问了。
4 搭建时遇到的问题
4.1 报错内容
安装后执行docker-compose —version报错
/usr/local/bin/docker-compose: line 1: Not: command not found4.2 解决办法
Docker-Compose 的Docker文档是错误的。他们忘记在命令中的版本号前面加上“ v ”;因此下载失败。显示文件是空的。 在下载链接中的版本号前加上“ v ”!!!
sudo curl -L "https://github.com/docker/compose/releases/download/v2.1.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composedocker-compose --version