简单几步就教会你如何使用 dockerfile 制作 LNMP 镜像,还不赶紧学起来
简单几步就教会你如何使用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 镜像,还不赶紧学起来相关推荐
- 简单3步,在线完成gif动图制作
现在使用动图的地方非常多,动图的展现形式随处可见,不管是文章内容中的插图还是QQ.微信聊天时用的表情包,都经常会看到动图的身影.动态图片总是能够吸引更多用户的眼球,搭配相关文字说明,能够将想要展现的内 ...
- 视频怎么在线做动图?简单三步教你在线视频转gif制作
Gif动态图片的出现给我们的生活带来许多乐趣,当我们想要使用电影.电视剧等短视频制作gif动图的时候应该如何操作呢?给大家分享一款在线视频转gif(https://www.gif.cn/)工具-[GI ...
- “果粉”速递:简单9步轻松绕过iCloud 激活锁
本文讲的是"果粉"速递:简单9步轻松绕过iCloud 激活锁,如何在iPhone 7(Plus).6S Plus.6S.6 Plus.6.5S.5C.4S.4以及iPad或iPod ...
- xbox手柄接收器驱动_新手有什么PC电脑手柄推荐?简单易懂5分钟教会你做出选择...
不知道大家入手柄坑是在什么情况?我以前也经常疑惑,用手柄玩PC游戏是什么感觉,总是在想手柄好用吗?后台因为看着身边很多同学玩游戏都是用手柄在玩游戏,我就偷偷买回来试了试,结果发现,诶真香,也特别后悔, ...
- 开机不进去桌面执行gui_电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文件...
hello~我可爱的粉丝们!今天粮小白分享一个电脑系统崩溃无法开机,怎么把电脑数据保存备份的小技能,就来就点个关注吧.每天更新生活必备技能哦. 电脑系统崩溃进不去,简单几步设置U盘,快速找回桌面重要文 ...
- 简单几步解决企业USB端口隐患
随着科技的发展,信息化技术不断进步,便捷式设备也遍地开花.iPod.PDA.智能手机.移动硬盘.MP3.MP4及优盘等等可移动便捷设备给我们的日常生活带来了诸多的便利.随着这些新设备的不断出现,给我们 ...
- Window ChromeDriver(简单4步完成)
Window 下配置ChromeDriver(简单4步完成) 第一步:当然是下载最新的chrome浏览器版本 https://www.google.cn/chrome/ 第二步:下载最新的Chrome ...
- 如何挂载initrd.img文件(简单三步)
首先建立临时文件夹/home/initrd,并进入(cd /home/initrd) 然后用下面简单三步即可挂在initrd.img 1.cp /boot/initrd.img-2.6.32.2 ./ ...
- mysql插入数据返回主键值_Mysql千万级别数据批量插入只需简单三步!
第一步:配置my.ini文件 文件中配置 bulk_insert_buffer_size=120M 或者更大 将insert语句的长度设为最大. Max_allowed_packet=1M Net_b ...
最新文章
- acm数论之欧几里得gcd
- 《最受欢迎的女友职业排行榜Top10》
- visio 形状_分享我Visio经验(问题从来都不是问题)
- 他读博期间发表3篇Science,28岁任武大教授,35岁入“杰青”名单,让人叹服!...
- 移动端海洋实时仿真技术研究与实现
- 转载-Oracle ORACLE的sign函数和DECODE函数
- Oracle11g adump目录下面.aud增长导致空间撑满无法删除导致CRS无法启动的解决方法
- 丽江,是否一群失意的人聚合地
- 基于mfc实现画图软件
- PHP运行出现502是什么原因,php出现502错误怎么解决
- 如何替换mac word中的换行符为空格
- 房价――你欠中国老百姓一次彻底的崩盘!
- wallhaven壁纸下载
- 【字符转换】——全角和半角转换
- c++手动去除字符串中的空格和tab
- [世界杯] 意大利 vs 法国 最后的决战
- UI自动化测试工具-UFT 使用体验
- 笔记本怎么查看hdmi版本_一文带你了解笔记本的外部接口:VGA、HDMI、DP、USB
- 图像处理(2)- 空间滤波
- php detime,php读取 mssql数据datatime时间字段的问题