使用docker搭建wordpress网站
概述
使用docker的好处就是尽量减少了环境部署,可靠性强,容易维护,我使用docker搭建wordpress的主要目标有下面几个
首先我重新生成数据库容器可以保证数据库数据不丢失,重新生成wordpress容器保证wordpress网站数据不丢失,尽量让两个容器处于无状态运行中,所有数据保存在本地,方便备份和恢复
mysql容器方面
首先我是在树莓派上做这个实验的,用的是别人做好的arm版本的mysql镜像,其实和官方的mysql镜像是一样的,没有任何区别,就是名字不一样而已,生成容器的命令如下docker run --name mysql-wordpress -d -v /root/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="woyaoxuehuilinux" hypriot/rpi-mysql
解释一下参数,--name就是给容器取名字。-d就是把它放在后台运行,-v加上后面的目录表示把容器中的/var/lib/mysql目录和宿主机中的/root/mysql-data目录做映射,把数据库数据保存在本地,-e后面加的参数就是设置mysql的密码,最后就是使用的镜像的名字
wordpress容器方面
直接上运行参数docker run --name wordpress -d -p 80:80 --link mysql-wordpress:mysql -v /root/wordpress-html:/var/www/html wordpress
还是先解释下参数--name就是给容器取名字,-d就是把容器放在后台运行-p表示容器的80端口和宿主机的80端口做映射--link表示和刚才生成的mysql容器做连接,-v表示把网站的目录和宿主机中的/root/wordpress-html做映射最后就是要使用的镜像的名字了
测试
如果你pull完镜像,并且执行了上面的运行命令之后,直接访问主机的ip应该就是wordpress选择语言安装界面了,按照流程把wordpress安装完成,然后我们发布一篇文章,接着我们停止并且删除mysql容器docker stop mysql-wordpress
docker rm mysql-wordpress
之后访问网站显示Error establishing a database connection
就是表示连接不上数据库了,这说明是正常的
之后我们重新云翔创建mysql容器时候的命令 docker run --name mysql-wordpress -d -v /root/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="woyaoxuehuilinux" hypriot/rpi-mysql
接着访问网站,发现网站可以正常访问
接着测试继续,我们删除数据库容器和网站容器docker stop mysql-wordpress wordpress
docker rm mysql-wordpress wordpress
接着 访问网站,此时网站肯定不能访问,之后我们重新创建这两个容器 docker run --name mysql-wordpress -d -v /root/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="woyaoxuehuilinux" hypriot/rpi-mysql
docker run --name wordpress -d -p 80:80 --link mysql-wordpress:mysql -v /root/wordpress-html:/var/www/html wordpress
然后访问网站
见证奇迹的时刻
网站可以正常访问,数据也没有丢失
怎么备份网站?
从上面我们就可以总结出备份网站的步骤了,首先保存两个执行容器的命令到一个文本文件,接着把mysql-data
和wordpress-html
打包备份就好了,容器的启动时间只要几秒钟,所以如果你要做一个安全的网站架构你可以这么做,把上面我说的两个目录保存在存储中,容器运行在服务器上,或者使用k8s去管理容器,当然存储也是需要做备份的,这样只要就可以保证服务的超级可靠性了。
欢迎关注Bboysoul的博客www.bboysoul.com
Have Fun
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
按量付费转包年包月之批量操作篇
考虑以下场景:在购买 ECS 实例的时候,您可能没有确定实例需要使用多长时间,您可以在购买实例的时候付费类型选择按量计费,实例使用一段时间以后,您确定了实例的使用周期以后再将其转换为包年包月实例。您可以登录 ECS控制台 或者使用 ModifyInstanceChargeType 接口将按量实例转为包年包月实例。 ECS控制台 和 ModifyInstanceChargeType 接口每次最多支持 20 个按量实例同时转换,考虑到您需要转换的按量实例可能较多,本文在介绍通过 ECS控制台 和 ModifyInstanceChargeType 接口将按量实例转换为包年包月实例的同时,还将介绍如何快速地将某个 Region 下的按量实例全部转换为包年包月实例。 按量实例转包年包月实例(ECS控制台) 登录 ECS控制台,进入实例列表页,选
- 下一篇
阿里云ECS,突发性能实例t5购买参考和使用建议
相信随着阿里云拼团活动的结束,很多参与拼团购买者和发起拼团的获赠者,都已经拿到了服务器或者提货券 拿到提货券的请注意:一个月时间内开通,过期无效!!! 已经开通的注意:活动提供的ECS实例为突发性能型t5系列,cpu基准性能10%。 怎么理解这个突发性能呢? 简单说就是,平常用不到多少cpu资源,偶尔或者峰值超过10%的情况! 购买突发性能实例t5的时候,其中有个关键字请重点留意:cpu基准值。这个值决定了你是否适合使用这款机器。很多人拿到机器的第一反应就是骂阿里云超售。 这么说吧,按照我目前的体会理解:这款产品,是阿里云在看到大量用户的ecs买了之后CPU利用率很低才推出的,如果你只用10%的cpu资源,那么其余90%完全闲置浪费。在这样的背景下,阿里云既可以不带上超售的帽子,又可以让低利用率用户享受更低成本。对阿里云来说,阿里云做了这么一个产品出来提高了cpu利用率,就是给这些cpu平均利用率低于10%的用户准备的,这些用户使用t5机型可以换取更低成本。 所以,超售一词就很难用来形容阿里云t5了,如果你买了t5机器,要求却超过基准性能,那么显然你不适合购买t5机型。已经买了怎么办...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境