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

Dockerfile制作LAMP环境镜像

文章目录

    • 使用Dockerfile制作LAMP环境镜像
      • 编写Dockerfile
        • 不修改默认页面
        • 修改默认页面
      • Start Script
      • 目录结构及文件
      • 登录私有仓库
      • 给镜像打标签
      • 上传镜像
      • 页面检查
      • 检测镜像可用性

使用Dockerfile制作LAMP环境镜像

编写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时通过浏览器可看出效果。

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

#!/bin/bash
/usr/sbin/httpd &
/usr/sbin/mysqld --user=mysql &
tail -f /dev/null

目录结构及文件

├── lamp
│   ├── Dockerfile
│   ├── epel.repo
│   ├── mysql.repo
│   └── start.sh

登录私有仓库

[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-storeLogin Succeeded

给镜像打标签

[root@docker lamp]# docker tag lamp:v1.1 www.kvm.cn/library/lamp:v1.1  

上传镜像

[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

页面检查

image-20230821195058028

检测镜像可用性

[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 ServerLoaded: 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
http://www.lryc.cn/news/145001.html

相关文章:

  • 暴力递归转动态规划(二)
  • debian apt error: Package ‘xxx‘ has no installation candidate
  • c#设计模式-结构型模式 之 外观模式
  • Focal Loss-解决样本标签分布不平衡问题
  • 运算符(个人学习笔记黑马学习)
  • 开源与专有软件:比较与对比
  • openResty+lua+redis实现接口访问频率限制
  • 自动化测试(三):接口自动化pytest测试框架
  • Python --datetime模块
  • 顺序表链表OJ题(3)——【数据结构】
  • 【Azure】Virtual Hub vWAN
  • React Navigation 使用导航
  • 双指针算法,基础算法实践,基本的算法的思想,双指针算法的实现
  • idea http request无法识别环境变量
  • 性能测试常见的测试指标
  • 并发 04(Callable,CountDownLatch)详细讲解
  • Json路径表达式
  • 【uniapp 上传图片示例】
  • apache2配置文件 Require all granted是什么意思
  • c/c++ 的一些知识
  • Rancher上的应用服务报错:413 Request Entity Too Large
  • 【LeetCode题目详解】第八章 贪心算法 part01 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和 day31补
  • ssm+vue中国咖啡文化宣传网站源码和论文
  • 基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 4 Data store标签页介绍
  • 区间型动态规划典型题目:lintcode 476 · 石子归并【中等,免费】lintcode 593 · 石头游戏 II【中等 vip】
  • 4. 池化层相关概念
  • ChatGPT Prompting开发实战(一)
  • VB车辆管理系统SQL设计与实现
  • java 泛型
  • git 查看/配置 local/global 用户名称和用户邮箱