docker实战之极速搭建ghost个人博客

3,654 阅读2分钟

前言

初衷

最近深入学习了大火的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进入后台管理系统进行配置,这里就不多说了。

总结

未完待续