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

Dockerfile构建lamp镜像

1、构建目录

[root@docker ~]# mkdir compose_lamp
[root@docker ~]# cd compose_lamp/

2、编写Docekerfile

[root@docker compose_lamp]# vim Dockerfile
#基础镜像
FROM centos:7#维护该镜像的用户信息
MAINTAINER Crushlinux <crushlinux@163.com>#安装httpd
RUN yum -y install httpd#安装mysql 和phpRUN rpm --rebuilddb && yum -y install mariadb-devel mariadb-server mariadb php php-fpm#修改php-fpm 配置文件允许nginx 访问#设置环境变量,便于管理
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/httpd/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"]

3、编写 db_init.sh

[root@docker compose_lamp]# vim db_init.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;"

4、编写 index.php

[root@docker compose_lamp]# vim index.php <?php
phpinfo();
?>

5、编写 default.conf 

[root@docker compose_lamp]# vim default.conf server {listen       80;server_name  localhost;location / {root   /usr/share/httpd/html;index  index.html index.php index.htm;}location ~ \.php$ {root           /usr/share/httpd/html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/share/httpd/html$fastcgi_script_name;include        fastcgi_params;}
}

6、编写 run.sh

[root@docker compose_lamp]# vim run.sh #!/bin/bash
/usr/sbin/httpd && /usr/sbin/php-fpm && /usr/bin/mysql_safe
~                                                                    

7、构建镜像

[root@docker compose_lamp]# docker build -t lamp:new .
[root@docker compose_lamp]# docker images lamp:new
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
lamp                new                 47a211277660        14 minutes ago      913 MB

8、测试容器

 

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

相关文章:

  • LeetCode724. 寻找数组的中心下标
  • 【云计算 | Docker】Docker容器后台运行不了?entrypoint在作妖?
  • DAY02_Spring第三方资源配置管理Spring容器Spring注解开发Spring整合Mybatis和Junit
  • 烘焙小程序蛋糕店烘焙店源码点心店小程序源码
  • HarmonyOS 开发基础(五)对用户名做点啥
  • 【前端】搭建Vue3框架
  • Opencv-C++笔记 (15) : 像素重映射 与 图像扭曲
  • 【Java】UWB高精度工业人员安全定位系统源码
  • 文本NLP噪音预处理(加拼写检查)
  • [Docker实现测试部署CI/CD----自由风格的CI操作[最终架构](5)]
  • 纯JS+Vue实现一个仪表盘
  • 标定(内参、外参)
  • 基于ffmpeg与SDL的视频播放库
  • 基于二进制草蝉优化算法选择特征并使用 KNN 进行训练(Matlab代码实现)
  • 14-4_Qt 5.9 C++开发指南_QUdpSocket实现 UDP 通信_UDP组播
  • ai图片合成软件帮你创造个性绚丽
  • git 版本回退
  • 使用Jackson自定义序列化操作(Jackson – Custom Serializer)
  • Python-元组
  • 快速转换PDF文件: Python和PyMuPDF教程
  • 规划模型Matlab代码
  • 用html+javascript打造公文一键排版系统11:改进单一附件说明排版
  • snap xxx has “install-snap“ change in progress
  • Elasticsearch 性能调优指南
  • 学习Boost一:学习方法和学习目的
  • c语言每日一练(1)
  • iOS开发-CocoaLumberjack日志库实现Logger日志功能
  • 深度学习(34)—— StarGAN(2)
  • use lua
  • 网络——初识网络