CentOS 7 使用 docker 安装 typecho 博客系统

   日期:2024-12-21    作者:zsjhsy 移动:http://ljhr2012.riyuangf.com/mobile/quote/8154.html

我的博客 https://savokiss.com 用的是 typecho,一直使用的是 阿里云ECS 直接安装的 MySQL 和 PHP,由于买的时间比较早,当时用的是 CentOS 6.5。后来想玩 docker,发现 docker 只支持 CentOS 7+,加上之前的系统上东西太乱了,所以这次有时间就将数据库和 typecho 源码备份了一下,然后换了一个纯净的 CentOS 7.6 的镜像。由于我买的 ECS 是 1CPU 1GB 内存,之前还一直担心跑不起来 docker,这次升级完之后发现完全没问题,内存用了一半都不到哈~于是记录下这个过程,说不定可以帮到其他小伙伴。

CentOS 7 使用 docker 安装 typecho 博客系统

升级系统,建议备份好数据,由于我的 ECS 上面主要就一个博客,所以直接用全新的镜像,安装完后啥都木有,当然也可以直接将快照创建为自定义镜像,然后升级系统的时候选择即可该快照即可。

本人也是 docker 小白,如果对 docker 不熟悉,可以先看笔者的另一篇文章

写给前端工程师的 docker 入门

下面开搞

如果想要用非 root 用户执行 docker 命令,请参考此步骤。
新增的用户名叫 savokiss。
下面的命令使用 root 执行。

添加用户

修改密码

加入 sudo 权限

找到下面两行,将新用户写入,如

创建 docker 用户组

将新用户加入 docker 组

让变更生效

然后用户 savokiss 执行 docker 命令时就不用加 sudo 了

以下命令均以 root 用户执行

下载安装依赖包

添加国内 yum 源

更新缓存,安装 docker-ce

启动 docker

hello-world 是官方的测试镜像。

国内镜像源加速

如果启动失败的话可以更换为 daocloud 的 docker 源,然后重新 run

也可以直接修改  中的 registry(文件不存在就新建一个

修改后重启服务

如果能看到以下界面,就说明 hello world 成功咯

这里主要获取 nginx@1.16.1、mysql@5.7、php@7.2 三个镜像,如有需要可以自行修改版本号。

获取 MySQL 镜像

创建容器 main_mysql

参数说明

  • -d 代表 daemon,即后台运行

  • -p 是设置宿主机和容器的端口号

  • -e 设置 mysql 密码

  • —name 给当前 container 起一个名字

获取 PHP 镜像

创建容器 main_phpfpm

参数说明

  • -v 代表 volumes,即挂载宿主机和容器的目录映射

  • —link 代表链接外部 container,本例中即 main_mysql

测试目录映射

先进到容器内部

这句话简单来说就是将容器中的  连接到你当前的命令行,相当于进入容器中执行命令。

执行完后会进入容器的 
然后来创建个文件

然后在宿主机中的  目录下就会发现一个 test.php,说明映射目录成功啦~

PHP 扩展安装

由于 typecho 需要使用 mysql pdo。再次用上面的命令进入 main_phpfpm 容器,然后执行

然后执行  就可以看到已经安装的扩展

获取 nginx 镜像

创建 nginx 容器

这里由于网站配置了 https,所以需要打开 443 端口,并且除了挂载网站目录,也将 nginx 的 conf.d 目录挂载到了宿主机

然后到  目录下

1. 新建  文件,内容如下,已经开启了 https 和伪静态

2. 新建  文件

3. 创建  文件夹,将 https 证书 ,  放进去

如果不需要 https,上面的配置文件就不需要后面这两步,同时 conf 文件内容适当删减即可。

注意:上面的配置文件中的路径都是对于容器内部来说的。

提示:如果启动失败,可以使用  查看错误日志,启动成功后是可以进入到容器内部的。修改配置文件后可能需要进入容器内部执行 ,或者直接在宿主机  即可。

由于笔者是迁移,typecho 源码都在 github 上,所以直接 git clone 到  中即可。然后用工具连接数据库将 sql 导入就完成啦。

本文主要参考了文末的第一篇文章,主要是为了记录折腾的过程,当然目前搭建完成还有几个问题可以优化,如

  1. 多个网站是否应使用同一个 nginx 容器

  2. 容器如何在挂掉后自动重启

  3. 换成 docker-compose 编排会不会更好

第一条等遇到了再考虑一下,第二条可以通过 run 命令指定 —restart 即可。
第三条其实可以另写一篇文章了~


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号