抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >
L
O
A
D
I
N
G

在云服务器中使用 Docker 搭建 Hexo 框架运行环境,在本地使用 VSCodeXshell 通过 SSH 进行远程管理

本文偏向于记录捣鼓网站的过程,并非新手教程,仅供参考。

一、前言

先说一下大概的流程:

  1. 在服务器上安装 Docker
  2. 在 Docke 上安装 Centos,并配置 Hexo 运行环境(Node.js、Git、SSH)
  3. 配置VSCode和Xshell连接服务器

二、运行环境搭建

查看服务器系统信息:

1
lsb_release -a

不同的Linux系统,其包管理工具也有所不同(yum、apt、npm)

1. Docker 安装

查看Docker是否已经安装以及Docker版本信息

1
docker -v

如果已经安装有的旧版本的Docker,可以将旧版本的卸载并安装新版本的Docker,旧版本的docker叫做docker或者docker-engine ,如果有安装,先卸载其以及其依赖,新版本的docker叫做docker-ce

/var/lib/docker/目录下的镜像文件,容器,卷和网络将会被保留,不会被删除。

1
sudo apt-get remove docker docker-engine docker.io containerd runc

常见的Docker安装方法:

  1. 在软件源内添加docker,并且安装(易于安装和升级)
  2. 下载DEB包手动安装,手动升级(网络隔离下使用)
  3. 官方一键安装脚本(懒人必备)

这里选择第三种安装方式进行安装Docker

使用国内dacloud一键安装命令

1
curl -sSL https://get.daocloud.io/docker | sh

效果如下:

安装成功效果图:

2. Docker 配置Hexo框架环境

这里选择使用 Centos7 作为Hexo运行环境

使用 docker 命令拉取 centos7 镜像,命令如下:

1
docker pull centos:centos7

运行下面的命令,即可查看 docker 镜像信息:

1
docker images

启动一个 docker 容器:

1
docker run -dit centos:centos7 /bin/bash

查看 docker 正在运行的容器并进入容器中

1
2
docker ps
docker exec -it containerID /bin/bash

进入容器之后先更新yum源

1
yum -y update

三、服务安装

2.1 开启 SSH 服务

安装sshd服务:

1
2
yum -y install openssh-server
yum -y install openssh-clients

启动sshd服务:

1
/usr/sbin/sshd -D

不出意外的话应该会报以下错误:

Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available – exiting.

此时,依次执行下列命令:

1
2
3
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""

再启动sshd服务一切正常

使用 vi 命令或者 vim 命令修改sshd_config配置文件:

1
vim /etc/ssh/sshd_config

如果不能执行 vi / vim 命令,需要先进行安装:yum -y install vim

找到UsePAM yes这一段配置,将其改成UsePAM no

1
2
UsePAM no
# UsePAM yes

修改 root 的密码,如果不能passwd,需要先进行安装:yum -y install passwd

2.2 Git 安装

Git安装可以选择软件包管理软件进行安装,也可以从源码编译并安装

这里选择使用软件包管理软件进行安装

1
yum -y install git

运行下面的命令,打印 Git 版本,验证安装过程:

1
git --version

在 Ubuntu 20.04 下 Git 当前可用版本是 2.25.1:

git version 2.25.1

至此已经完成Git的安装过程。

2.3 Node.js 安装

1
2
3
# centos 安装 node.js 命令:
curl --silent --location https://rpm.nodesource.com/setup_16.x | sudo bash
sudo yum -y install nodejs

运行下面的命令,验证 node 版本:

1
node -v

运行下面的命令,验证 npm 版本:

1
npm -v

安装成功效果如下:

2.4 Hexo 安装

1
npm install -g hexo-cli

运行下面的命令,验证 hexo 版本:

1
hexo -v

至此,环境配置已经全部完成,退出容器后将容器提交到镜像即可:

1
docker commit containerid imagename

通过docker run启动一个新的容器,参数-d表示后台运行,-p表示docker到主机的端口的映射

1
docker run -d -p 10022:22 -p 80:80 --name blog imagename /usr/sbin/sshd -D

10022端口用于后续的xshell连接以及vscode对hexo项目远程编码,80端口为网站端口

3. 远程控制Docker容器

经过前面的操作,我们已经可以使用ssh对容器进行远程控制了

3.1 使用 Xshell 连接

1
2
# ssh 用户名@ip:端口
ssh root@39.39.39.39:10022

3.2 使用vscode 连接

评论