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
相关推荐
Hello.Reader2 分钟前
Ubuntu 上正确安装 Kali 虚拟机、Docker 与 kail 工具指南
linux·ubuntu·docker
WarPigs7 分钟前
Windows IIS开启和配置服务器
运维·服务器
原来是猿10 分钟前
Linux UDP Socket 编程入门:Echo Server/Client实现
linux·运维·udp
pengyi87101538 分钟前
共享 IP 池多人使用 分层权限与配额管理方案
运维·服务器·网络
筱_智1 小时前
Docker学习-超详细-通俗易懂(从入门到精通)
学习·docker·容器
搞科研的小刘选手1 小时前
【高届数传感机电会议】第十二届传感器、机电一体化和自动化系统国际学术研讨会(ISSMAS 2026)
运维·人工智能·自动化·控制·传感器·传感·机电
EAIReport1 小时前
Docker与K8s核心解析:共同性、差异性及实战适配指南
docker·容器·kubernetes
李景琰1 小时前
Debian12安装配置Mqtt之EMQX
linux·运维·服务器
SimLine芯见1 小时前
专为空管环境打造的KVM切换器,满足主备自动化高速无缝切换需求
运维·自动化
长安链开源社区1 小时前
动手开发 | 如何通过k8s部署长安链
云原生·容器·kubernetes·区块链