基于CentOS8创建Apache服务镜像

一、构建过程中遇到的问题

    1. 容器运行时报错

AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.4. Set the ‘ServerName’ directive globally to suppress this message

解决方案:需要在Dockerfile文件中暴露端口80或者将apache配置文件的#ServerName www.example.com:80注释取消

EXPOSE 80
或者
RUN sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /etc/httpd/conf/httpd.conf
    1. 构建过程中yum下载Apache服务错误

Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist

问题原因是:2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,CentOS Linux 8 作为 RHEL 8 的复刻版本,生命周期缩短,于 2021 年 12 月 31 日停止更新并停止维护(EOL),更多的信息可以查看 CentOS 官方公告。如果需要更新 CentOS,需要将镜像从 mirror.centos.org 更改为 vault.centos.org
解决方案:在Dockerfile中构建时修改镜像源

RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
RUN yum clean all && yum makecache
    1. 由于Dockerfile文件中最后CMD命令错误导致容器起不来

具体Dockerfile关于CMD命令的说明请参考

二、构建过程

具体Dockerfile文件:

FROM centos
RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
RUN yum clean all && yum makecache
RUN yum -y install httpd
EXPOSE 80
# RUN sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /etc/httpd/conf/httpd.conf
ADD news.tar.gz /var/www/html/
RUN mv /var/www/html/news/* /var/www/html/
COPY start.sh /start.sh
RUN chmod 775 /start.sh
CMD ["sh","-c","/start.sh"]

start.sh文件:

#/bin/bash
/usr/sbin/httpd -D FOREGROUND

这里必须使用http指令启动,systemctl在container中是不允许使用的。并且加入参数-D FOREGROUND保持apache运行在前台,因为Docker容器仅在它的1号进程(PID为1)运行时,会保持运行。如果1号进程退出了,Docker容器也就退出了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Unity+智谱AI开放平台]调用ChatGLM Tuobo模型驱动AI小姐姐数字人

1.简述 本篇文章主要介绍一下,在Unity端,集成智谱AI开放平台提供的chatglm模型api,实现AI聊天互动相关的功能。从智谱AI官方站点上看到,提供有chatglm turbo的公共模型服务,能够实现32K超长上下文,应用到我…

Spring Security 6.1.x 系列(3)—— 基于过滤器的基础原理(二)

四、SecurityFilterChain 在Serlvet中,一组Security Filter组成SecurityFilterChain,SecurityFilterChain的概念就比较好理解,是Spring Security 提供的过滤器链,用于管理本身所有的过滤器,在上面的流程图中已有说明。…

【嵌入式】Linux C编程——C要注意的东西

1、语法分析中的“贪心法”: 编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分&…

Lvs+Nginx+NDS

什么是?为什么?需要负载均衡 一个网站在创建初期,一般来说都是只有一台服务器对用户提供服务 ​ 从图里可以看出,用户经过互联网直接连接了后端服务器,如果这台服务器什么时候突然 GG 了,用户将无法访问这…

Python构造代理IP池提高访问量

目录 前言 一、代理IP是什么 二、代理IP池是什么 三、如何构建代理 IP 池 1. 从网上获取代理 IP 地址 2. 对 IP 地址进行筛选 3. 使用筛选出来的 IP 地址进行数据的爬取 四、总结 前言 爬虫程序是批量获取互联网上的信息的重要工具,在访问目标网站时需要频…

QT实现用本地资源管理器来打开文件夹

QString path"文件夹路径";QDesktopServices::openUrl(QUrl("file:"path, QUrl::TolerantMode)); 在windows中QT编程,使用资源管理器来打开指定本地文件夹的方法: 第一种:使用Qprocess命令(相当于在cmd命令管…

【面试经典150 | 链表】反转链表 II

文章目录 Tag题目来源题目解读解题思路方法一:迭代 其他语言python3 写在最后 Tag 【头插法】【迭代】【链表】 题目来源 92. 反转链表 II 题目解读 返回部分链表。 解题思路 方法一:迭代 我们首先需要找到开始反转链表的前一个节点,为此…

React 你还在用 Redux 吗?更简化的状态管理工具(Recoil)

以往传统的 Redux 状态管理工具使用起来代码太过于复杂。 你需要通过纯函数触发 action 再去修改 data 中定义的数据,而且要通过接口请求数据还需要借助 redux - think 这个中间件才能完成。。。 更加方便使用的工具:Recoil ~ 由 facebook 推出契合 R…

【机器学习可解释性】5.SHAP值的高级使用

机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP 值5.SHAP值的高级使用 正文 汇总SHAP值以获得更详细的模型解释 总体回顾 我们从学习排列重要性和部分依赖图开始,以显示学习后的模型的内容。 然后我们学习了SHAP值来分解单个预测的组成部…

CSS3背景样式

在CSS 2.1中,background属性的功能还无法满足设计的需求,为了方便设计师更灵活地设计需要的网页效果,CSS3在原有background基础上新增了一些功能属性,可以在同一个对象内叠加多个背景图像,可以改变背景图像的大小尺寸&…

最简单的驱动程序

简介 在 Linux 内核中,Makefile 和 Kconfig 是两个重要的文件,它们分别承担着不同的作用。 Makefile Makefile 是一个文本文件,用于定义编译和构建内核的规则。它使用 make 工具来管理和自动化构建过程。Makefile 定义了编译器、链接器、编译选项、目标文件、源文件等信息…

Flask后端开发(二) - 功能实现和项目总结

目录 1. 功能1:修改文件参数值1.1. 获取网页端传参1.2. 读取文件1.2.1. 一般文件读取方式1.2.2. 特殊文件 —— mlx文件1.2.3. 特殊文件 —— .xlx文件1.3. 查找数据修改位置,替换数据2. 功能2:读取结果数据2.1. 实时数据展示如何存储相关数据?2.2. 读取相关数据,整理、打…

[ubuntu系统下的文本编辑器nano,vim,gedit,文件使用,以及版本更新问题]

文本编辑器概要 在Ubuntu系统下,有许多文本编辑器可供选择,每个编辑器都有其独特的特性和用途。以下是一些常见的文本编辑器: Gedit: 这是Ubuntu默认的文本编辑器,它简单易用,适合基本的文本编辑任务。 安…

前端基础---跳转相关的功能

后端给链接地址并且给token进行跳转 如果点击有key4,说明要跳转到相应的页面 auth是通过后端获取的地址, jdk是后端获取的相应的token, 然后进行拼接,进行window.open()进行跳转 if (key 4) {var testUrl …

基于RFID技术的优化医药供应链管理解决方案

一、社会背景和挑战 随着全球假药问题的严重性日益凸显,医疗产品的追溯和管理变得越来越重要。据世界卫生组织报告,全球假药比例已超过10%,而中国每年至少有20万人死于假药和不当用药。在国际上,医疗产品的追溯体系已成为监管机构…

如何解决ssh登录报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

原因: 当两个设备第一次进行链接时,会在~/.ssh/konwn_hosts 中将被连接设备的公钥信息进行保存,后续再次链接时OpenSSH会核对公钥来进行一个简单的验证 然而有时候被链接的那台设备系统被重装、IP 冲突等原因,会导致公钥信息没…

MLF - 麻辣粉

MLF全称中期借贷便利(Medium-term lending Facility),理解为央行向商业银行、政策银行发放的贷款,但需要符合一定要求才可向央行申请。银行通过MLF向央行借款的时候,需要提供担保品。一般为国债、央行票据、政策性金融债、地方债、…

com.aspose.words for java添加页码

public void addHeaderFooter(Document doc){//创建页脚 页码HeaderFooter footer new HeaderFooter(doc, HeaderFooterType.FOOTER_PRIMARY);doc.getFirstSection().getHeadersFooters().add(footer);//页脚段落Paragraph footerpara new Paragraph(doc);footerpara.getPara…

数据库的用户管理

一、创建用户:create user 二、赋予用户权限:grant(终端执行) 三、删除用户权限:revoke(在终端操作) 四、用户的重命名:rename 五、删除用户:drop 六、修改用户密码 1、…

linux目录与文件管理

目录与路径 关于执行文件路径的变量:$PATH ls完整文件名为:/bin/ls 在任何文件夹下输入ls命令可以显示出一些信息而不是找不到命令,这就是因为环境变量PATH所致。在执行命令时,系统会依照PATH的设置去每个PATH定义的目录下查找文…