Dockerfile制作LAMP环境镜像

文章目录

使用Dockerfile制作LAMP环境镜像

编写Dockerfile

不修改默认页面

dockerfile 复制代码
FROM centos:7
MAINTAINER "FOX"
COPY mysql.repo /etc/yum.repos.d/
COPY epel.repo /etc.yum.repos.d/
RUN yum clean all && yum makecache && yum install -y mysql-server php php-gd php-mysql httpd && \
	sed -i "s/#ServerName www.example.com:80/ServerName www.example.com:80/" /etc/httpd/conf/httpd.conf
EXPOSE 80/tcp 3306/tcp
COPY start.sh /opt/
RUN chmod +x /opt/start.sh
CMD ["/opt/start.sh"]

修改默认页面

该Dockerfile在宿主机安装有GUI时通过浏览器可看出效果。

dockerfile 复制代码
FROM centos:7
MAINTAINER "FOX"
COPY mysql.repo /etc/yum.repos.d/
COPY epel.repo /etc.yum.repos.d/
RUN yum clean all && yum makecache && yum install -y mysql-server php php-gd php-mysql httpd && \
	sed -i "s/#ServerName www.example.com:80/ServerName www.example.com:80/" /etc/httpd/conf/httpd.conf   && \
	echo "<?php phpinfo(); ?>" > /var/www/html/index.php
EXPOSE 80/tcp 3306/tcp
COPY start.sh /opt/
RUN chmod +x /opt/start.sh
CMD ["/opt/start.sh"]

Start Script

shell 复制代码
#!/bin/bash
/usr/sbin/httpd &
/usr/sbin/mysqld --user=mysql &
tail -f /dev/null

目录结构及文件

复制代码
├── lamp
│   ├── Dockerfile
│   ├── epel.repo
│   ├── mysql.repo
│   └── start.sh

登录私有仓库

bash 复制代码
[root@docker lamp]# docker login www.kvm.cn
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

给镜像打标签

bash 复制代码
[root@docker lamp]# docker tag lamp:v1.1 www.kvm.cn/library/lamp:v1.1  

上传镜像

bash 复制代码
[root@docker lamp]# docker push www.kvm.cn/library/lamp:v1.1 
The push refers to repository [www.kvm.cn/library/lamp]
cc32351b5cc2: Pushed 
516365b20893: Pushed 
d0be8416d3fd: Pushed 
acedef93300c: Pushed 
174f56854903: Mounted from library/centos7 
v1.1: digest: sha256:74d3d51a999ec3234febc5788018a8f46b58b02461f5e82b8e89268f3bb7b570 size: 1363

页面检查

检测镜像可用性

bash 复制代码
[root@docker lamp]# docker run -d -it --name lamp --privileged=true lamp:v1.1 /usr/sbin/init
[root@docker lamp]# docker ps
CONTAINER ID   IMAGE       COMMAND           CREATED         STATUS         PORTS              NAMES
d9dddfda70ce   lamp:v1.1   "/opt/start.sh"   6 minutes ago   Up 6 minutes   80/tcp, 3306/tcp   lamp
[root@docker lamp]# curl 172.17.0.2
Web test
[root@docker lamp]# docker exec  -it lamp /bin/bash
[root@4c13402c5313 /]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: activating (start) since Tue 2023-08-22 17:36:44 UTC; 31s ago
相关推荐
Benszen26 分钟前
Docker容器化技术全解析
运维·docker·容器
IMPYLH31 分钟前
Linux 的 false 命令
linux·运维·服务器·bash
小江的记录本40 分钟前
【Linux】《Linux常用命令汇总表》
linux·运维·服务器·前端·windows·后端·macos
一匹电信狗1 小时前
【Linux我做主】进程程序替换和exec函数族
linux·运维·服务器·c++·ubuntu·小程序·开源
加农炮手Jinx1 小时前
Flutter 三方库 cli_script 鸿蒙化极简命令行执行引擎适配探索:在多维沙盒终端环境注入异构 Shell 串联逻辑彻底拔高全自动化容器脚本运维及-适配鸿蒙 HarmonyOS ohos
运维·flutter·harmonyos
JoyCong19981 小时前
纳睿雷达×ToDesk:突破时空限制,远程运维让“中国智造”雷达更高效
运维·科技·电脑·远程操作
Saniffer_SH2 小时前
【每日一题】一台可编程的PCIe 6.0主机 + 一套自动化CTS验证平台 + 一个轻量级链路分析系统
运维·服务器·测试工具·fpga开发·自动化·计算机外设·硬件架构
吕司2 小时前
Linux线程的概念
linux·运维·服务器
河南博为智能科技有限公司2 小时前
智能变电站辅控系统解决方案!
运维·边缘计算
飞Link3 小时前
深度掌控 Agent 调试:LangGraph 本地服务器与 Studio 核心指南
运维·服务器·jvm