Linux下Dockerfile搭建lnmp(目前只有n和p)

# 一:环境准备
centos7.4以及搭建好的Docker

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[[email protected] ~]# docker -v
Docker version 17.03.2-ce, build f5ec1e2

# 二:搭建nginx和php的镜像
1.nginx
创建基础镜像

[[email protected] /]# vim Dockerfile
FROM centos

MAINTAINER liuning

CentOS-Base.repo.bak
RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

/etc/yum.repos.d
COPY CentOS7-Base-163.repo /etc/yum.repos.d/CentOS7-Base-163.repo
COPY epel-release-latest-7.noarch.rpm /etc/yum.repos.d/

WORKDIR /etc/yum.repos.d/
RUN yum install -y epel-release-latest-7.noarch.rpm
RUN yum clean all

RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel ntpdate crontabs

RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

生成基础镜像

[[email protected] /]# docker build -t centos_init .

在根目录下创建nginx文件夹并进入

[[email protected] /]# mkdir nginx;cd nginx

编写nginx的Dockerfile

[[email protected] nginx]# vim Dockerfile
FROM centos_init

MAINTAINER liuning

RUN useradd -M -s /sbin/nologin www
ADD nginx-1.8.1.tar.gz /usr/local/src

RUN yum install libxslt-devel -y gd gd-devel GeoIP GeoIP-devel pcre pcre-devel

WORKDIR /usr/local/src/nginx-1.8.1
RUN ./configure --user=www --group=www --prefix=/usr/local/nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install

COPY nginx.conf /usr/local/nginx/conf/nginx.conf
COPY fastcgi_params /usr/local/nginx/conf/fastcgi_params
RUN mkdir /usr/local/nginx/conf/vhost
COPY www.conf /usr/local/nginx/conf/vhost/www.conf
EXPOSE 80

CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

从github上获取需要的文件

https://github.com/jsonhc/docker_project/tree/master/docker_dockerfile/lnmp

最终目录下有这些文件

[[email protected] nginx]# ls
Dockerfile fastcgi_params nginx-1.8.1.tar.gz nginx.conf www.conf

构建nginx镜像

[[email protected] nginx]# docker build -t nignx .

查看是否构建成功

[[email protected] nginx]# docker images | grep nginx
nginx latest f453aeaced4a About an hour ago 583 MB

2.php
在根目录下创建php文件夹并进入

[[email protected] /]# mkdir php;cd php

编写Dockerfile文件

[[email protected] php]#vim Dockerfile
FROM centos_init

MAINTAINER liuning

ADD libmcrypt-2.5.7.tar.gz /usr/local/src

WORKDIR /usr/local/src/libmcrypt-2.5.7
RUN ./configure && make && make install

ADD php-5.6.30.tar.bz2 /usr/local/src

RUN yum -y install libxml2 libxml2-devel bzip2 bzip2-devel libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel libcurl libcurl-devel

WORKDIR /usr/local/src/php-5.6.30
RUN ./configure --prefix=/usr/local/php --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-mcrypt --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-config-file-path=/usr/local/php/etc --with-bz2 --with-gd && make && make install

COPY php.ini-production /usr/local/php/etc/php.ini
COPY php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

RUN useradd -M -s /sbin/nologin php
RUN sed -i -e ‘[email protected];pid = run/[email protected] = run/[email protected]‘ -e ‘[email protected]@[email protected]‘ -e ‘[email protected] = 127.0.0.1:[email protected] = 0.0.0.0:[email protected]‘ /usr/local/php/etc/php-fpm.conf
RUN sed -i ‘[email protected];daemonize = [email protected] = [email protected]‘ /usr/local/php/etc/php-fpm.conf

EXPOSE 9000

CMD ["/usr/local/php/sbin/php-fpm"]

从github上获取需要的文件,如上最终php文件夹下有如下这些文件

[[email protected] php]# ls
Dockerfile init.d.php-fpm libmcrypt-2.5.7.tar.gz php-5.6.30.tar.bz2 php-fpm.conf.default php.ini-production

构建php镜像(过程漫长)

[[email protected] php]# docker build -t php .

查看是否构建成功

[[email protected] php]# docker images | grep php
php latest 15fe39a66344 35 minutes ago 1.12 GB

三:启动容器
启动php

[[email protected] php]# docker run -d --name=php -v /www:/usr/local/nginx/html php

启动nginx

docker run -d --name=nginx -p 80:80 -v /www:/usr/local/nginx/html --link=php:php nginx

查看启动是否正常,若是容器一启动就是exited状态,则使用docker logs -f 容器名,查看报错信息

[[email protected] php]# docker ps -a

在/www下创建phpinfo和html文件进行测试

[[email protected] www]# ls
index.html test.php

四:访问测试

原文地址:http://blog.51cto.com/11093860/2113499

时间: 2024-10-19 03:31:09

Linux下Dockerfile搭建lnmp(目前只有n和p)的相关文章

Ubuntu 18.04.1 下快速搭建 LNMP环境(PHP7.2.5+MySql5.7+Nginx1.14.0)

在Linux环境下,搭建LNMP环境,大家以前或多或少都做过相关的操作,但是随着软件的更新,PHP,MySQL不断的升级,以往很多比较老的教程,都已经无法完成这个搭建环境的任务了,今天偶然有兴趣在最新的Ubuntu18.04上搭建LNMP环境,本来感觉挺容易的,但是在实际操作过程中,遇到一个个坑,真是让人哭笑不得,所以写这篇心得,主要是分享在搭建过程中遇到的一些问题进行了整合,来给后入进行排雷. 首先展示搭建成功后的页面 PHP安装成功 MySQL安装成功 来,现在我们开始进行搭建 1.Ngin

Linux下安装搭建Memcached集群环境

Linux下安装搭建Memcached集群环境

Linux下快速搭建php开发环境

php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XAMPP可快速搭建PHP开发环境.下载链接:https://www.apachefriends.org/download.html  进入下载界面选择XAMPP for Linux下载 启动终端输入命令  cd /下载xampp保存的路径.我的保存路径是:/home/coderose/下载.更改安装程

linux下svn 搭建

linux 下SVN搭建加自动提交更新到指定目录 一.安装 #yum install subversion    yum安装SVN #mkdir -p /opt/svn/repos    创建svn目录 #svnadmin create /opt/svn/repos  生成SVN配置文件 二.编辑配置文件 #vim /opt/svn/repos/conf/passwd [users]# harry = harryssecret# sally = sallyssecretnxeon = 123用户

linux下简易搭建svnserver

参考文档: 安装部署: http://www.cnblogs.com/wrmfw/archive/2011/09/08/2170465.html http://www.ha97.com/4467.html 关闭服务: http://linux.chinaunix.net/techdoc/net/2005/08/17/923721.shtml 测试成功: http://blog.163.com/[email protected]/blog/static/1736123482012021142129

Linux下快速搭建ntp时间同步服务器

背景: 服务器多了,时间是否一致以及是否准备就显得格外重要,虽然这个问题总是被忽略,但是统一时间是很有必要的,因为时间问题导致服务出现问题也是司空见惯,本文简单介绍一下ntp的快速搭建和使用. 1.  安装ntp yum -y install ntp(直接yum安装即可) 2.  修改ntp.conf的配置 1)vim /etc/ntp.conf ①   配置方法一:只允许192.168.100.0网段的客户机进行时间同步 在restrict default kod nomodify notra

linux下环境搭建比较

xampp是一款初学者使用的集成的apache mysql与php配置安装包了,我们可以利用xampp来快速安装配置php环境,下面一起来看看吧. 要在linux服务器上面挂我们的php网站程序,就得先在服务器上面搭建php的运行环境.当然,如果你用的是vps,你选择的系统是带有WDCP版的linux,会自动帮你安装好环境,而且有中文的管理界面方便你管理你的linux服务器,新增网站,新建ftp,链接数据库等等,新手推荐使用这种,不过不是每个都提供有WDCP的,万网的没有,华夏的有. 现在在li

linux 下apache搭建和虚拟主机的配置

apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一. Linux 下apache服务器的搭建 安装并更新apache yum install httpd 启动服务 默认情况下 apache在/var/www/html存放web页面 在该目录下新建一个index.html网页 编辑html文件 此时在客户机浏览器输入服务器地址,简单的搭建完成!

linux下Yum搭建lamp网站架构

在上节课我用了源代码和免安装软件的两种方式搭建了LAMP架构的网站,今天我们对上一节做个简单的总结: 源代码安装软件是我们Linux下常用的安装方法共分四个步骤: 在上一节我们的数据库就是免安装的.直接解压就可以使用了.是不是很简单,只要我们把前面的命令都掌握了,后面的服务搭建都不是问题. 今天我们讲解用yum搭建lamp网站架构.用yum命令安装软件也是我们Linux下一种常用的,因为他更简单,但是移植性差.好啦开始我们的操作了. 实验环境: 一台单机服务器,操作系统centos6.6.注意服