VPS新机基础环境部署+Docker用法
推荐服务器选用
Lunix发行版
的Debian 10
或者Ubuntu 20.04
或更高版本
1.开启 TCP BBR 实现高效单边加速
修改系统变量:
echo net.core.default_qdisc=fq >> /etc/sysctl.conf
echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf
保存生效
sysctl -p
执行
sysctl net.ipv4.tcp_available_congestion_control
如果结果是这样
sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
就开启了。 执行,以检测 BBR 是否开启。
lsmod | grep bbr
2.添加SWAP虚拟内存
VPS 的内存如果过小且没有虚拟内存,可以设置一下 SWAP虚拟内存,一般为内存的 1-1.5 倍即可,可以让系统运行更流畅!
内存,是计算机系统中的主要部件,用于保存进程运行时的程序和数据,也称可执行存储器。
虚拟内存,是指具有请求调入功能和置换功能,能存逻辑上对内存容量加以扩充的一种存储系统。
前提条件:
1、服务器系统:CentOS6+/Debian7+/Ubuntu12+
2、虚拟化架构:KVM、Hyper-V、VMware
运行脚本:
wget -O box.sh https://raw.githubusercontent.com/BlueSkyXN/SKY-BOX/main/box.sh && chmod +x box.sh && clear && ./box.sh
选择18
进行添加SWAP虚拟内存,按1
添加,然后输入需要的虚拟内存大小,单位MB,如要设置2G内存就输入2048
3.安全防护工作
更新并下载必要软件
apt-get update && apt-get install -y wget vim
4.安装 Docker 环境
a.安装 Docker(非大陆服务器)
wget -qO- get.docker.com | bash
查看 docker 版本
docker -v
设置开机自动启动
systemctl enable docker
b.安装 Docker(大陆服务器)
curl -sSL https://get.daocloud.io/docker | sh
查看 docker 版本
docker -v
设置开机自动启动
systemctl enable docker
卸载Docker
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
5.安装 Docker-compose
a.安装 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 版本
docker-compose --version
b.安装 Docker-compose(大陆服务器)
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 版本
docker-compose --version
卸载Docker-compose
cd /usr/local/bin/
rm -rf docker-compose
6.修改 Docker 配置(可选)
以下配置会增加一段自定义内网 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
至此,你的服务器已经配置好了基础的 Docker 环境。
7.Linux 服务器的安全防护
如果你想给当前的用户设置重新设置一个密码,那么可以到这个网站,生成一个复杂的密码,当作你服务器的密码。1Password 强密码生成器 输入命令修改密码:
passwd
8.docker命令搭建的常用更新方法
先停止容器,这一步所有都一样,注意你容器的名字,不知道名字可以docker ps
显示所有当前所有容器列表,在NAME列找到对应名字
docker stop halo
删除容器,这一步所有都一样,注意你容器的名字
docker rm -f halo
备份数据(非常非常非常重要)这一步所有都一样,注意你挂载出来的路径地址
cp -r ~/.halo ~/.halo.archive
下面这一步是halo特有的
rm -rf ~/.halo/.leveldb
拉取最新的镜像,一般的话你知道特定的版本号就直接写即可,比如这边的1.5.4,如果不知道版本号,可以直接写latest,即 docker pull halohub/halo:latest
docker pull halohub/halo:1.5.3
重新运行容器 注意和搭建时候唯一不同的就是最后面的版本号不同,如果你是latest 那就把1.5.4改成latest
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.3
删除掉旧的镜像
docker image prune
9.docker-compose搭建的更新方法
创建qbitorrent数据文件夹并文件夹跳转到
mkdir -p /root/data/docker_data/qBittorrent && cd /root/data/docker_data/qBittorrent
创建配置文件目录与下载目录
mkdir config downloads
创建并编辑文件
vim docker-compose.yml
英文输入法下,按 i
进入'Insert'
编辑模式,然后复制粘贴下面内容:
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
退出'Insert'
编辑模式,然后英文输入法输入 :wq
保存退出。
注意1:
如果在命令行复制粘贴的内容有错位是不行的,可以英文输入法输入:q!
不保存退出,然后用touch docker-compose.yml
创建一个空文件,然后在SSH工具里面的文件夹中找到这个空文件打开将内容复制进去然后点击保存。
注意2:
如果要修改冒号左边端口,需要先查看端口是否被占用(以 81 为例):
先下载工具,一般是默认有这个工具的
apt install lsof #安装 lsof
查看 81 端口是否被占用,如果被占用,重新自定义一个端口
lsof -i:81
开始创建容器
docker-compose up -d
更新方法:
docker-compose pull
同样你可以备份一下,也可以直接备份配置文档
cp -r qBittorrent qBittorrent.archive
完成
docker-compose up -d
删除掉旧的镜像
docker image prune
10.Docker项目迁移到新服务器
先备份数据
cp -r ~/.halo ~/.halo.archive
然后压缩备份文件,tar -czvf 压缩后文件名 备份文件名
tar -czvf .halo.tar.gz .halo.archive
格式为scp -P 端口 -r /root/backup/backup.tar 新服务器的用户名@新服务器的IP:/root/data/docker_data/
scp -P 22 -r .halo.tar.gz root@192.248.190.156:/root
在新服务器上
tar -zxvf .halo.tar.gz
把.halo.archive重命名成.halo
mv .halo.archive .halo