且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

docker分离部署lnmp

更新时间:2022-08-31 22:10:27

以下所需的全部的文件、镜像、软件,如有需要请到我的百度云分享下载:

链接:http://pan.baidu.com/s/1kUVNdsj 密码:an9l

项目需求:

构建lnmp平台。

要求nginx、php、mysql分开布署。

Nginx通过fastcgi方式支持php动态页面


docker分离部署lnmp

实验完整框架如下:

docker分离部署lnmp

说明:使用单一进程容器,即一个容器只运行一种服务,而不是把所有服务放在一个容器的设计,让lnmp项目需要的Nginx、PHP、MySQL组件,分别运行在各自镜像创建出来的独立容器中。

实验步骤如下

1、安装docker1.12并开始服务

1)安装docker1.12

docker分离部署lnmp

2)开启docker服务并开机自启

docker分离部署lnmp

3)关闭selinux(一定要关闭)

docker分离部署lnmp

4)开启路由转发功能

docker分离部署lnmp

5)下载centos6镜像

(我这里已经下载好,并做成了归档压缩包,只用解压即可)

docker分离部署lnmp

2、创建实验所用文件夹以及文件

1)分别创建工作目录

docker分离部署lnmp

2)再分别创建相应目录下的文件和子目录

docker分离部署lnmp

3、分别编辑nginx、php、mysql的dockerfile文件以及各自的supervisord.conf文件

1)nginx

①编辑nginx的dockerfile文件

docker分离部署lnmp

#images of nginx

FROM centos:centos6

MAINTAINER from zhengpengfei@example.com

#install supervisor

RUN yum -y install python-setuptools

RUN /usr/bin/easy_install supervisor

#install nginx

RUN yum -y install pcre-devel zlib-devel gcc make

ADD ./software/nginx-1.6.2.tar.gz /usr/src

RUN useradd -M -s /sbin/nologin nginx

RUN cd /usr/src/nginx-1.6.2/ && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --user=nginx --group=nginx && make && make install

#Modify nginx configuration file

COPY nginx.conf  /usr/local/nginx/conf/

RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin

RUN mkdir /usr/local/nginx/html/web

#Open nginx service

COPY supervisord.conf /etc/supervisor/supervisord.conf

EXPOSE 80

CMD ["/usr/bin/supervisord"]

②编写nginx的supervisord.conf配置文件

docker分离部署lnmp

③docker build -t命令制作nginx镜像

docker分离部署lnmp

④镜像制作完成

docker分离部署lnmp

2)php

①编辑php的dockerfile文件

docker分离部署lnmp

#images of php

FROM centos:centos6

MAINTAINER from zhengpengfei@example.com

#install supervisor

RUN yum -y install python-setuptools

RUN /usr/bin/easy_install supervisor

#install php

RUN yum -y install gd libxml2-devel libjpeg-devel libpng-devel mysql-devel gcc make

RUN useradd -M -s /sbin/nologin php

ADD ./software/php-5.3.28.tar.gz /usr/src

RUN cd /usr/src/php-5.3.28/

RUN cp /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so

RUN cd /usr/src/php-5.3.28/ && ./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql --with-mysqli --with-mysql-sock --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib && make && make install

#Modify PHP configuration file

RUN cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

COPY php-fpm.conf /usr/local/php/etc/

RUN mkdir -p /var/www/html/web

#Open php-fpm service

ADD ./supervisord.conf /etc/supervisor/supervisord.conf

EXPOSE 9000

CMD ["/usr/bin/supervisord"]

②编写php的supervisord.conf配置文件

docker分离部署lnmp

③docker build -t命令制作php镜像

docker分离部署lnmp

④镜像制作完成

docker分离部署lnmp

3)mysql

①编辑mysql的dockerfile文件

docker分离部署lnmp

#image of mysql

FROM centos:centos6

MAINTAINER from zhengpengfei@example.com

#install supervisor

RUN yum -y install python-setuptools

RUN /usr/bin/easy_install supervisor

#install mysql

RUN yum -y install ncurses-devel make gcc gcc-c++ 

ADD ./software/cmake-2.8.12.tar.gz /usr/src

ADD ./software/mysql-5.5.38.tar.gz /usr/src

RUN cd /usr/src/cmake-2.8.12 && ./configure && gmake && gmake install

RUN cd /usr/src/mysql-5.5.38 && cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install

#Optimal adjustment mysql

WORKDIR  /usr/src/mysql-5.5.38/

RUN cp -rf ./support-files/my-medium.cnf   /etc/my.cnf

RUN cp -rf ./support-files/mysql.server   /etc/rc.d/init.d/mysqld

RUN chmod +x /etc/rc.d/init.d/mysqld

RUN echo "PATH=$PATH:/usr/local/mysql/bin"  >> /etc/profile

RUN source /etc/profile

#Initialize mysql

RUN groupadd mysql

RUN useradd -M -s /sbin/nologin mysql -g mysql

RUN chown -R mysql:mysql /usr/local/mysql

RUN /usr/local/mysql/scripts/mysql_install_db   --user=mysql   --basedir=/usr/local/mysql   --datadir=/usr/local/mysql/data/

#service mysql start

ADD ./supervisord.conf /etc/supervisor/supervisord.conf

EXPOSE 3306

CMD ["/usr/bin/supervisord"]

②编写mysql的supervisord.conf配置文件

docker分离部署lnmp

③docker build -t命令制作mysql镜像

docker分离部署lnmp

④镜像制作完成

docker分离部署lnmp

4、编写docker-compose.yml文件

docker分离部署lnmp

docker分离部署lnmp

5、安装docker-compose

1)先安装pip

docker分离部署lnmp

 

docker分离部署lnmp

2)再安装compose

docker分离部署lnmp

docker分离部署lnmp

6、通过docker-compose启动项目

docker分离部署lnmp

7、进入mysql容器修改数据库root密码以及创建数据库和创建授权用户

1)修改数据库用户root密码

docker分离部署lnmp

2)创建数据库

docker分离部署lnmp

3)创建授权用户

docker分离部署lnmp

4)给root用户授予全部权限

docker分离部署lnmp

8、做html、php页面和数据库访问测试

1)制作html、php测试页

docker分离部署lnmp

2)测试nginx和php的访问处理

docker分离部署lnmp

docker分离部署lnmp

3)制作数据库的测试页面

docker分离部署lnmp

4)测试数据库连接

docker分离部署lnmp

至此说明nginx、php、mysql三者的协同工作已经没有问题了

8、安装一个电影网站,做最后的lnmp协同工作测试

1)解压缩SKYUC

docker分离部署lnmp

2)设置权限

docker分离部署lnmp

分别去nginx和php容器给予权限:

php:

docker分离部署lnmp

nginx

docker分离部署lnmp

3)宿主机防火墙开启80例外

docker分离部署lnmp

4)在一台客户机安装SKYUC

docker分离部署lnmp

docker分离部署lnmp

docker分离部署lnmp

docker分离部署lnmp


本文转自Mr大表哥 博客,原文链接: http://blog.51cto.com/zpf666/1905555    如需转载请自行联系原作者