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