当前位置: 首页 > news >正文

Dockerfile构建LNMP镜像(yum方式)

目录

Dockerfile构建LNMP镜像

1、建立工作目录

2、编写Dockerfile文件

3、构建镜像

4、测试容器

5、浏览器访问测试:


Dockerfile构建LNMP镜像

1、建立工作目录

[root@huyang1 ~]# mkdir lnmp/

[root@huyang1 ~]# cd lnmp/

2、编写Dockerfile文件

[root@huyang1 lnmp]# vim Dockerfile

配置如下:

#基础镜像
FROM centos:7#维护该镜像的用户信息
MAINTAINER Crushlinux <crushlinux@163.com> #配置Nginx 的YUM 源
RUN rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm #安装nginx
RUN yum -y install nginx#安装mysql 和php
RUN rpm --rebuilddb && yum -y install mariadb-devel mariadb-server mariadb php php-fpm#修改nginx 配置文件,使之支持PHP
ADD default.conf /etc/nginx/conf.d/default.conf#修改php-fpm 配置文件允许nginx 访问
RUN sed -i '/^user/s/apache/nginx/g' /etc/php-fpm.d/www.conf
RUN sed -i '/^group/s/apache/nginx/g' /etc/php-fpm.d/www.conf#设置环境变量,便于管理
ENV MARIADB_USER root
ENV MARIADB_PASS 123456#mysql 数据库授权
ADD db_init.sh /root/db_init.sh
RUN chmod 775 /root/db_init.sh
RUN /root/db_init.sh#添加测试页面
ADD index.php /usr/share/nginx/html/index.php#定义时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#分别开启80 端口,443 端口,9000 端口,3360 端口
EXPOSE 80
EXPOSE 9000
EXPOSE 3306#复制脚本,设置权限,启动容器时启动该脚本
ADD run.sh /run.sh
RUN chmod 775 /run.sh
CMD ["/run.sh"]

[root@localhost lnmp]# vim mysql.sh

配置如下:

#!/bin/bash
/usr/bin/mysql_install_db --user=mysql
sleep 3
/usr/bin/mysqld_safe &
sleep 3
mysql -e "use mysql; grant all privileges on *.* to '$MARIADB_USER'@'%' identified by '$MARIADB_PASS' with grant option;"
h=$(hostname)
mysql -e "use mysql; update user set password=password('$MARIADB_PASS') where user='$MARIADB_USER' and host='$h';"
mysql -e "flush privileges;"

[root@localhost lnmp]# vim index.php

配置如下:

<?php
phpinfo();
?>

[root@localhost lnmp]# vim default.conf

配置如下:

server {listen       80;server_name  localhost;location / {root   /usr/share/nginx/html;index  index.html index.php index.htm;}location ~ \.php$ {root           /usr/share/nginx/html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;include        fastcgi_params;}
}

[root@huyang1 lnmp]# vim run.sh

配置如下:

#!/bin/bash
/usr/sbin/nginx && /usr/sbin/php-fpm && /usr/bin/mysqld_safe

3、构建镜像

[root@huyang1 lnmp]# docker build -t lnmp:new .

[root@huyang1 lnmp]# docker images lnmp

4、测试容器

[root@huyang1 lnmp]# docker run -d -p 80:80 -p 3306:3306 -p 9000:9000 --name lnmp-test  lnmp:new

  备注:每一个端口都必须加上-p选项,否则不启动!

5、浏览器访问测试:

http://192.168.100.131/index.php

 

http://www.lryc.cn/news/107799.html

相关文章:

  • Flink Windows(窗口)详解
  • AssetBundle学习
  • CompletableFuture原理与实践
  • 8.3 作业
  • c# COM组件原理
  • Java POI 百万规模数据的导入和导出
  • 如何快速用PHP取短信验证码
  • CloudStack 的 AsyncJobManagerImpl
  • OAuth机制_web站点接入微软azure账号进行三方登录
  • Linux ALSA音频工具aplay、arecord、amixer的使用方法
  • 编写一个最简单的Linux服务端和客户端程序
  • openKylin顺利加入RISC-V 基金会,推动架构芯片与操作系统协同发展
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)【二】
  • 出现一次的数字(其他数字出现三次,两次)
  • Rust- 智能指针
  • 什么是微服务
  • 无人机电力巡检方案在电网安全与维护中的应用
  • 网络工程师 快速入门
  • Linux系统vim查看文件中文乱码
  • BladeX框架开源-工作-笔记-Docker部署-Jenkins配置
  • Modbus tcp转ETHERCAT网关modbus tcp/ip协议
  • RK356x Android11更换默认的Launcher
  • Python 操作 MySQL 数据库
  • 脑电信号处理与特征提取——6.运用机器学习技术和脑电进行大脑解码(涂毅恒)
  • 腾讯云COS+PicGO+截图工具+Obsidian+Typora+蚁小二:打造丝滑稳定的Markdown写作和分发环境
  • LeetCode--HOT100题(18)
  • ES6的语法兼容IE浏览器
  • 【opencv学习】鼠标回调函数、鼠标控制画矩形
  • Typescript面试题
  • GB28181智能安全帽方案探究及技术实现