简单几步就教会你如何使用dockerfile制作LNMP镜像

  • 前言
  • 一、dockerfile撰写php镜像
  • 二、dockerfile撰写mysql镜像
  • 三、dockerfile撰写nginx镜像
  • 四、查看镜像构建情况
  • 五、分别开启nginx、mysql和php镜像
  • 六、进行测试

前言

注意:搞docker的环境时,切记把firewalld和selinux关了,否则docker很多服务会起不来

一、dockerfile撰写php镜像

FROM centos:7.4.1708
ENV TIME_ZOME Asia/Shanghai
ARG WJ="php-7.1.10"
ADD $WJ.tar.bz2 /opt
RUN yum -y install gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel bison \&& mkdir -p /usr/local/php/etc \&& cd /opt/$WJ \&& ./configure --prefix=/usr/local/php \--with-config-file-path=/usr/local/php/etc \--with-gd --with-mysqli \--with-openssl --with-zlib --with-curl \--with-jpeg-dir --with-png-dir --with-iconv \--enable-fpm --enable-zip --enable-mbstring \&& make -j 2 \&& make install \&& cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf \&& cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf \&& sed -i '/;daemonize/a\daemonize = no' /usr/local/php/etc/php-fpm.conf \&& sed -i 's/127.0.0.1/0.0.0.0/g' /usr/local/php/etc/php-fpm.d/www.conf \&& echo "${TIME_ZOME}" > /etc/timezone \&& ln -sf /usr/share/zoneinfo/${TIME_ZOME} /etc/localtime \&& rm -rf /opt/local/php* \&& yum clean all \&& yum -y remove gcc gcc-c++ make \&& mkdir -p /usr/local/nginx/html \&& echo -e "<?php\nphpinfo();\n?>" > /usr/local/nginx/html/index.phpWORKDIR /usr/local/php/
EXPOSE 9000
CMD ["sbin/php-fpm","-c","etc/php-fpm.conf"]

文件结构:

创建php镜像:

二、dockerfile撰写mysql镜像

FROM centos:7.4.1708
ADD mysql-5.6.26.tar.gz /opt
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo \&&  useradd -s /sbin/nologin mysql \&& yum -y install gcc gcc-c++ make pcre-devel expat-devel perl ncurses-devel autoconf cmake \&& cd /opt/mysql-5.6.26/ \&& cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DSYSCONFIDIR=/etc -DMYSQL_DATADIR=/home/mysql/ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \&& make -j2 \&& make install \&& cp -f support-files/my-default.cnf /etc/my.cnf \&& cp support-files/mysql.server /etc/init.d/mysqld \&& chown -R mysql:mysql /usr/local/mysql/ \&& sed -i 's/^basedir/basedir=\/usr\/local\/mysql/g' /etc/init.d/mysqld \&& sed -i 's/^datadir/datadir=\/home\/mysql/g' /etc/init.d/mysqld \&& /usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql
ENV PATH /usr/local/mysql/bin:$PATH
EXPOSE 3306
ENTRYPOINT ["/usr/local/mysql/bin/mysqld_safe"]

文件结构:

创建mysql镜像:

三、dockerfile撰写nginx镜像

FROM centos:7.4.1708
ADD nginx-1.12.0.tar.gz /opt
RUN yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make \&& useradd -M -s /sbin/nologin nginx \&& cd /opt/nginx-1.12.0/ \&& ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-file-aio --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module \&& make \&& make install \&& ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx \&& echo -e "events {\nuse epoll;\nworker_connections  1024;\n}\nhttp {\nserver_tokens on;\nserver {\nlisten       80;\nserver_name  localhost;\nlocation / {\nroot   html;\nindex  index.html index.htmi index.php;\n}\nerror_page   500 502 503 504  /50x.html;\nlocation = /50x.html {\nroot   html;\n}\nlocation ~ \.php$ {\nroot           html;\nfastcgi_pass   172.168.184.30:9000;\nfastcgi_index  index.php;\nfastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;\ninclude        fastcgi_params;\n}\n}\n}" > /usr/local/nginx/conf/nginx.conf
ENV PATH /usr/local/nginx/sbin:$PATH
WORKDIR /usr/local/nginx/
EXPOSE 80
CMD ["nginx","-g","daemon off;"]

文件结构:

创建mysql镜像:

四、查看镜像构建情况

五、分别开启nginx、mysql和php镜像

六、进行测试

简单几步就教会你如何使用 dockerfile 制作 LNMP 镜像,还不赶紧学起来相关推荐

  1. 简单3步,在线完成gif动图制作

    现在使用动图的地方非常多,动图的展现形式随处可见,不管是文章内容中的插图还是QQ.微信聊天时用的表情包,都经常会看到动图的身影.动态图片总是能够吸引更多用户的眼球,搭配相关文字说明,能够将想要展现的内 ...

  2. 视频怎么在线做动图?简单三步教你在线视频转gif制作

    Gif动态图片的出现给我们的生活带来许多乐趣,当我们想要使用电影.电视剧等短视频制作gif动图的时候应该如何操作呢?给大家分享一款在线视频转gif(https://www.gif.cn/)工具-[GI ...

  3. “果粉”速递:简单9步轻松绕过iCloud 激活锁

    本文讲的是"果粉"速递:简单9步轻松绕过iCloud 激活锁,如何在iPhone 7(Plus).6S Plus.6S.6 Plus.6.5S.5C.4S.4以及iPad或iPod ...

  4. xbox手柄接收器驱动_新手有什么PC电脑手柄推荐?简单易懂5分钟教会你做出选择...

    不知道大家入手柄坑是在什么情况?我以前也经常疑惑,用手柄玩PC游戏是什么感觉,总是在想手柄好用吗?后台因为看着身边很多同学玩游戏都是用手柄在玩游戏,我就偷偷买回来试了试,结果发现,诶真香,也特别后悔, ...

  5. 开机不进去桌面执行gui_电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文件...

    hello~我可爱的粉丝们!今天粮小白分享一个电脑系统崩溃无法开机,怎么把电脑数据保存备份的小技能,就来就点个关注吧.每天更新生活必备技能哦. 电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文 ...

  6. 简单几步解决企业USB端口隐患

    随着科技的发展,信息化技术不断进步,便捷式设备也遍地开花.iPod.PDA.智能手机.移动硬盘.MP3.MP4及优盘等等可移动便捷设备给我们的日常生活带来了诸多的便利.随着这些新设备的不断出现,给我们 ...

  7. Window ChromeDriver(简单4步完成)

    Window 下配置ChromeDriver(简单4步完成) 第一步:当然是下载最新的chrome浏览器版本 https://www.google.cn/chrome/ 第二步:下载最新的Chrome ...

  8. 如何挂载initrd.img文件(简单三步)

    首先建立临时文件夹/home/initrd,并进入(cd /home/initrd) 然后用下面简单三步即可挂在initrd.img 1.cp /boot/initrd.img-2.6.32.2 ./ ...

  9. mysql插入数据返回主键值_Mysql千万级别数据批量插入只需简单三步!

    第一步:配置my.ini文件 文件中配置 bulk_insert_buffer_size=120M 或者更大 将insert语句的长度设为最大. Max_allowed_packet=1M Net_b ...

最新文章

  1. acm数论之欧几里得gcd
  2. 《最受欢迎的女友职业排行榜Top10》
  3. visio 形状_分享我Visio经验(问题从来都不是问题)
  4. 他读博期间发表3篇Science,28岁任武大教授,35岁入“杰青”名单,让人叹服!...
  5. 移动端海洋实时仿真技术研究与实现
  6. 转载-Oracle ORACLE的sign函数和DECODE函数
  7. Oracle11g adump目录下面.aud增长导致空间撑满无法删除导致CRS无法启动的解决方法
  8. 丽江,是否一群失意的人聚合地
  9. 基于mfc实现画图软件
  10. PHP运行出现502是什么原因,php出现502错误怎么解决
  11. 如何替换mac word中的换行符为空格
  12. 房价――你欠中国老百姓一次彻底的崩盘!
  13. wallhaven壁纸下载
  14. 【字符转换】——全角和半角转换
  15. c++手动去除字符串中的空格和tab
  16. [世界杯] 意大利 vs 法国 最后的决战
  17. UI自动化测试工具-UFT 使用体验
  18. 笔记本怎么查看hdmi版本_一文带你了解笔记本的外部接口:VGA、HDMI、DP、USB
  19. 图像处理(2)- 空间滤波
  20. php detime,php读取 mssql数据datatime时间字段的问题

热门文章

  1. 魏伟:学习音视频技术要先理论再实现
  2. Parse Too complex in xxxx.cpp --------source insight
  3. git--- 删除不存在对应远程分支的本地分支
  4. git clone拉取太慢怎么办?
  5. 【Java多线程】创建多线程的三种方式
  6. CentOS+tomcat jsp笔记
  7. 汇编语言 用push指令将a段中的前8个字形数据,逆序存储到b段中
  8. 5W字高质量java并发系列详解教程(上)-附PDF下载
  9. Pandas高级教程之:plot画图详解
  10. ECMAScript 6新特性简介