前言
自从上次发现有一台Linode VPS使用的centos8已经被淘汰,不再被官方支持后,就一直想找个时间把centos8系统改为ubuntu系统(更多具体细节可跳转,解决Centos 8 因版本太旧无法安装或更新包的问题 )。
因为之前已经采用了docker+traefik进行部署(之前用traefik统一做反代就是为了方便备份,具体跳转:Docker-compose安装Traefik2基本配置文件),预测只要把配置文件备份好,就算换系统也能快速恢复,不必担心换系统带来诸多恢复麻烦,于是开干。
要快速更改系统,你需要另外一台VPS保存文件,因为重做系统的VPS会丢失所有文件,也就是说最少2台VPS,一台重做系统,一台备份文件。
一、备份配置文件
1. 压缩需要备份配置文件
涉及文件传输,有经验的都知道,文件数量越多,传输的速度越慢(参考window不同盘间传输文件的速度)。
因上第一步最好在要更改系统VPS
打包所有配置文件为压缩包,linux中用到的压缩命令是 tar。以下就以本站vps为重做系统VPS为例。
因为以前应用的部署都是有组织的目录结构,现只需要备份/root/下的配置文件即可。
使用tar
命令:
cd /root
tar -zcvf jp_zctou_root.tar.gz /root/
2. 远程传输备份文件
SSH登录备份用的VPS
,使用scp
命令远程拉取刚生成的备份文件jp_zctou_root.tar.gz
。
使用scp
命令:
cd /root
scp -P 22 root@重做系统VPS的ip:/root/zctou/jp_zctou_root.tar.gz /root/jp_zctou_root.tar.gz
输入远程机,也就是重做系统VPS
的密码,即可拉取文件成功。
这里可能出现 ssh remote host identification has changed 的错误,那是验证出错的问题,具体解决办法可跳转: Linux 服务器用scp命令复制文件出错解决办法 。
二、Linode VPS重做系统
确认文件备份成功后,即可把linode vps的系统重做,把原本的centos8 改成 ubuntu20.04lts。具体步骤如下:
进入Linodes后台,找到对应的nodes,选rebuid
弹出如下界面,选择系统为ubuntu20.04 LTS
。
三、拉回配置文件并安装docker
SSH登录重做系统的VPS
,使用scp
命令远程拉回备份文件jp_zctou_root.tar.gz
。
1. 拉回文件并解压
cd /root
scp -P 22 root@备份用VPS的ip:/root/jp_zctou_root.tar.gz /root/jp_zctou_root.tar.gz
# 解压
tar -zxvf jp_zctou_root.tar.gz
# 移动zctou文件夹下所有文件到root
mv root/zctou /root
2. 安装docker
安装命令:
A. 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
B. 设置 repository安装
# 1.Update the apt package index and install packages to allow apt to use a repository over HTTPS:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 2.Add Docker’s official GPG key:
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 3.Use the following command to set up the repository:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
C. 安装docker
# 1.Update the apt package index
sudo apt-get update
# 2.Install Docker Engine, containerd, and Docker Compose.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
检验docker是否安装成功
sudo docker run hello-world
更多详细说明,参考官方说明:https://docs.docker.com/engine/install/ubuntu/
3. 安装docker-compose
安装命令:
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
查看是否安装成功:
docker compose version
# Docker Compose version v2.16.0
显示 Docker Compose version v2.16.0表示安装成功。
更多详细说明,参考官方说明:https://docs.docker.com/compose/install/other/
A.卸载原有docker compose
以下三种命令皆可卸载,看你的系统装了哪个命令。
apt-get
sudo apt-get remove docker-compose
curl
sudo rm /usr/local/bin/docker-compose
pip
pip uninstall docker-compose
B.安装最新docker-compse
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
安装成功后,查看docker compose 版本:
docker compose version
Docker Compose version v2.16.0
更详细的阅读,可跳转官方指引页:https://docs.docker.com/compose/install/other/
四、利用docker-compose拉起容器
只要安装好docker以及docker compose后,先拉起traefik2占用80与443端口,再拉起其他容器即可。
运行traefik
1、先创建proxy网络(之前已经配置好:Docker-compose安装Traefik2基本配置文件):
docker network create proxy
2、运行traefik
cd /root/traefik2
docker-compose up -d
运行成功后再用其他docker-compose拉起相应的应用,搞定。