原博客站点搭建过程-基于Docker

本文章将记录本站的建立过程,不方便透露的信息将直接使用中文表示。

准备工作:

服务器:ECS、RDS各一台(选择阿里云原因:便宜、好用)、域名一枚

基础环境:Linux(ECS_Centos7.2)+Nginx(Docker)+MySQL(RDS)+PHP(Docker)



选择Docker的原因:

1、简化配置;

2、隔离应用(可部署多个站点);

3、监控方便(基于Rancher);

4、快速部署(在制作好镜像的情况下,5分钟内便可完成部署);


Nginx与PHP的镜像使用:

1、Nginx为官方提供的镜像、PHP镜像为自制的。为什么要这样操作?

本身对nginx的版本要求并不高,官方提供的镜像大小只有107.4 MB,既能发挥所有功能了,而本人经过多次尝试之后发现自制镜像大小都大于200MB,所以最终选择了官方提供的镜像。

许多程序对PHP的版本都有一定的依赖性,且官方提供的镜像大小为 369.7 MB(单一版本);而自己基于centos:7.2镜像、且自定义php版本和模块后的镜像大小为346.6 MB。所以最终选择自制的镜像


2、为什么不将nginx与php放置同一容器中,依据什么?

1、依据官方的使用原则,一个容器跑一个程序(官方建议,也是容器的一个设计理念)。

2、nginx与php各自易扩展,一般处理瓶颈不会出现在nginx上,要提升的一般为php的处理能力,而此时如果nginx与php放置于同一个容器内的话,每拉起一台容器时都将浪费nginx的资源。


3、为什么MySQL不使用Docker?

原因:本人对MySQL到底适不适合用于Docker技术现在还未有一个明确的概念,总觉得没必要,且多次尝试的效果都未体现其优势,所以此本身暂时还为使用Docker。

下面链接为近期一篇关于MySQL使用Docker的文章。

http://www.360doc.com/content/17/0803/12/16619343_676322878.shtml


Nginx与PHP的镜像制作:

#docker pull nginx 获取nginx镜像

#docker pull centos:7.2.1511 获取centos7.2镜像用于制作php镜像


以下为dockerfile内容(可根据需要更改php版本:如将全部php更换为php53w或php71w)

FROM docker.io/centos:7.2.1511

MAINTAINER Huangqihuan <546020152@qq.com>

LABEL name="CentOS Base Image"

LABEL vendor="CentOS"

LABEL license=GPLv2

ADD run.sh /run.sh

RUN rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

RUN yum -y install php-gd php-mysql php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-snmp php-soap php-tidy php-common php-devel php-fpm && yum clean all && chmod 777 /run.sh

RUN useradd nginx && mkdir /www

ENTRYPOINT "/run.sh"


以下为run.sh内容

#!/bin/bash

/usr/sbin/php-fpm -c /etc/php-fpm.d/www.conf && /bin/bash



生成自制的php镜像

#sudo docker build -y centos7.2_php53:v1 .


创建容器

创建前先在本地完成如下准备:

/www/wordpress #存储wordpress代码路径

/www/nginx/nginx.conf #挂载nginx主配置文件

/www/nginx/conf.d #挂载nginx子配置文件目录

/www/nginx/log #挂载nginx日志目录

/www/php/www.conf #挂载php配置文件



1、创建php容器

sudo docker run -d --name "phpfpm" -P -v /www/wordpress:/www -v /www/php/www.conf:/etc/php-fpm.d/www.conf centos7.2_php53:v1 /run.sh


2、创建nginx容器

sudo docker run --name nginx_php -d -p 80:80 --link phpfpm:phpfpm -v /www/wordpress:/www -v /www/nginx/nginx.conf:/etc/nginx/nginx.conf -v /www/nginx/conf.d:/etc/nginx/conf.d -v /www/nginx/log:/var/log/nginx docker.io/nginx nginx -g "daemon off;"



3、nginx.conf配置信息(以下贴出来的配置信息为初始信息,并为经过调优,目的只为实现部署)

user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;

keepalive_timeout 65;

include /etc/nginx/conf.d/*.conf;

}


4、wordpress.conf配置信息

server {

listen 80;

server_name   更改为域名;

location / {

root /www;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /www;

}

location ~ \.php$ {

root /www;

fastcgi_pass phpfpm:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;

include fastcgi_params;

}

}


5、www.conf配置文件(注释信息已去除)

[www]

listen = 9000

user = nginx

group = nginx

pm = dynamic

pm.max_children = 80

pm.start_servers = 15

pm.min_spare_servers = 5

pm.max_spare_servers = 50

slowlog = /var/log/php-fpm/www-slow.log

php_admin_value[error_log] = /var/log/php-fpm/www-error.log

php_admin_flag[log_errors] = on

php_value[session.save_handler] = files

php_value[session.save_path] = /var/lib/php/session

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容