Docker搭建centos+hexo环境(内附镜像链接)
程序员文章站
2022-07-14 17:38:09
...
title: 2.Docker搭建hexo环境(内附镜像链接)
date: 2020-09-06 16:59:00
categories:
- 3.系统运维
- 3.hexo相关
- 1.hexo美化
因为我之前的hexo环境搭建在VMware里面,但是太麻烦,占用资源太多,而且Hyper-V还冲突,所以直接就在Docker中搭建了
安装过程
docker以及安装完成,通过官方仓库获得了centos7的镜像
启动镜像进入容器
docker run -it --name centos-hexo centos:centos7
安装git和epel-release
yum install git -y
yum install epel-release -y
安装npm环境
由于yum源中的npm版本太低,会导致hexo无法初始化,所以不适用yum安装
安装wget
yum install wget -y
下载nodejs安装包
最新安装包链接可以通过官网获取
mkdir nodejs
cd nodejs
wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
解压缩
tar -xvf node-v12.18.3-linux-x64.tar.xz
部署bin文件
我们需要找到nodejs的bin文件的绝对路径,然后通过ln进行关联
ln -s /nodejs/node-v12.18.3-linux-x64/bin/node /usr/bin/node
ln -s /nodejs/node-v12.18.3-linux-x64/bin/npm /usr/bin/npm
测试nodejs
node -v
npm -v
安装hexo
安装hexo命令
然后就是正常的hexo安装流程了
npm install hexo-cli -g
然后发现,hexo命令并没能全局
使用find命令找到
把他关联过去
ln -s /nodejs/node_modules/hexo-cli/bin/hexo /usr/bin/hexo
创建博客文件夹并初始化博客
mkdir blog
cd blog
hexo init
打包镜像
很难受,刚开始启动容器的时候,并没有将端口给映射出来,导致现在需要将容器打包成镜像,重新run映射端口
找到当前容器ID
打开新的cmd窗口,ps查询容器id
docker ps
保存到镜像
docker commit ed567c49427a kinght-centos-hexo
然后查看镜像是否保存成功
docker images
尝试运行hexo
端口映射启动
docker run -p 4000:4000 -it --name kinght-blog kinght-centos-hexo:latest
运行hexo本地预览
hexo s
在本地浏览器中输入http://localhost:4000/
与宿主机共享目录
这里还是采用的创建容器时命令
docker run -v E:\note\blog:/note -p 4000:4000 -it --name kinght-blog kinght-centos-hexo:latest
要求主机与容器都要使用绝对路径(或都是用相对路径)
尝试生成博客
cd /note #打开共享文件夹
cp * /blog/source/_posts/ #将所有文档拷贝至博客目录
cd blog
hexo g #生成博客
hexo s #本地预览博客
一键安装仓库
我已经将镜像上传到dockerhub了,可直接拉取
docker pull kinghtxg/kinght-centos-hexo:latest
hexo g #生成博客
hexo s #本地预览博客
[外链图片转存中...(img-i0kCEMEk-1599414178944)]
------
# 一键安装仓库
我已经将镜像上传到dockerhub了,可直接拉取
docker pull kinghtxg/kinght-centos-hexo:latest