需求说明 使用typeecho一款php软件在docker环境下构建运行自己得博客系统,并安装ssl证书。 博客软件typechohttp://typecho.org/ Step1:拥有一台包含docker软件的linux操作系统
- [root@oeynet tools]# docker -v
- Docker version 1.12.6, build 96d83a5/1.12.6
- [root@oeynet tools]#
复制代码 Step2:由于我的环境还有一个老系统使用tengine2搭建的所以我会直接将tengine作为内部的反向代理,把容器导出的端口提供服务 - [root@oeynet programs]# nginx -v
- Tengine version: Tengine/2.2.0 (nginx/1.8.1)
- [root@oeynet programs]#
复制代码
Step3:下载typeecho1.安装git命令 $git clone https://github.com/typecho/typecho.git typeecho 2.typeecho人性化的给我们提供了dockerfile文件,不过他们是把typecho程序,放在一个包含了mysql+nginx+php-fpm的容器中去,显然这是最简单的方式,不过使用docker-compose构建的话,服务会变得更容易维护,不过这次我们任然使用官方提供的Dockerfile去构建。 Step4:使用docker构建1.进入到tools目录
2.构建 - $docker build -t typeecho:0.1 .
复制代码在构建过程中可能会遇到安装mysql的时候报错,这个时候我们打开dockerfile去fix它
21行增加一行
3.构建完成之后
哇靠,如此之大,厉害了我的哥,typeecho官方提供的dockerfile啊,没有清理很多tmp文件
Step5:开始安装1.启动一个typecho容器 - [root@oeynet typecho]# docker run -d -v /server/docker-apps/typecho:/www typeecho:0.1
- f16060b32360834384e745317f5f657e17eb91fde1aaba0ad662995b1ab97511
- [root@oeynet typecho]# docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 9e01b2d210cc typeecho:0.1 "/bin/sh -c '/php/sbi" 3 minutes ago Up 3 minutes 80/tcp, 3306/tcp typecho
- [root@oeynet typecho]#
复制代码这里我们不需要去暴露任何端口,因为都是不安全的,特别是数据库的3306端口,由于我们是通过宿主机的nginx去访问。 -v参数是必须的,他指定我们去挂载网站得根目录到容器内部的网络上。 2.添加宿主机nginx的反代配置
查看宿主机ip 在network中添加nginx配置 - server{
- listen 80;
- server_name blog.oeynet.com;
- location / {
- proxy_pass http://192.168.0.2:80;
- }
- }
复制代码重新启动
接着我们访问 zhidianyun.cn,能访问说明我们已经成功了
|