前言
初衷
最近深入学习了大火的docker容器,想要做一个小项目练练手,刚刚想把之前自己搭的博客小站升级为更加geek。因此就要了这一次从无到有的极速搭建ghost博客教程。
为什么使用docker
docker可真是一个令人惊叹的技术。以往搭建ghost博客或者其他博客站点,有极其复杂的步骤和众多意向不到的阻碍,简单说就是学习曲线陡,而使用了docker容器技术,把别人的镜像拿来改造改造,秒搭个人博客
为什么ghost
因为geek,:)
总体架构
一共分为两个容器,一个是博客服务的ghost容器,另一个就是mysql数据库镜像
步骤
创建自定义网络
docker network create ghost_blog_dev

docker中自定义bridge网络会有DNS功能,后面ghost容器连接mysql容器可以通过容器名连接而不是IP地址。
创建mysql数据存储目录
mysql容器销毁后,产生的数据也会销毁。因此我们得把数据卷存放到宿主机上,因此先创建数据目录。
mkdir -p /data/blog/
启动mysql容器
docker run -d --name mysql -v /data/blog/:/var/lib/mysql --network ghost_blog_dev -e MYSQL_ROOT_PASSWORD=123456 mysql
值得注意得是,-v,指定数据卷的目录,--network指定连接的网络,--name,指定mysql容器名。

docker logs mysql
,观察一下日志查看,容器是否启动成功。
连接到mysql
查看到mysql容器的ip
docker network inspect ghost_blog_dev

在宿主机上连接mysql,密码是123456

修改用户root登陆auth为native,因为ghost容器那边不支持mysql 8.0的登陆验证方式。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
创建ghost数据库(表名会由ghost容器自动创建)
create database ghost;

构建ghost镜像
从我的github上拉取已经写好的镜像,并构建为ghost:dev镜像名
docker build -t ghost:dev https://github.com/jiujiujiujiujiuaia/ghost_Dockerfile.git
启动ghost镜像
--name指明容器名,--network指明连接的网络,--url指明ghost网站的连接域名(没有域名的指定ip),-p指明了宿主机和容器间的端口映射关系
docker run -d --name blog --network ghost_blog_dev -e url=http://118.24.145.98 -p 80:2368 ghost:dev
通过docker logs可以看到,容器已经启动成功,并在我们ghost数据库内创建了需要的数据表

同时,在宿主机的数据目录下,也可以看到容器产生的数据持久化到了宿主机中。

访问博客!
有了上面的步骤,博客搭建就完成了!不需要了解复杂的软件安装,软件工具安装,各种配置,一切都是拉取镜像,启动容器,bingo!完成!
访问博客!

关于博客的配置,可以通过url+/ghost进入后台管理系统进行配置,这里就不多说了。
总结
未完待续