位置: IT常识 - 正文

【云原生 | 21】Docker运行Web服务实战之Apache(云原生istio)

编辑:rootadmin
【云原生 | 21】Docker运行Web服务实战之Apache

推荐整理分享【云原生 | 21】Docker运行Web服务实战之Apache(云原生istio),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:云原生什么意思,云原生是什么,云原生 百度百科,云原生 百度百科,云原生到底是什么,云原生到底是什么,云原生到底解决什么问题,云原生 百度百科,内容如对您有帮助,希望把文章链接给更多的朋友!

作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道第一名🏅 阿里云ACE认证高级工程师🏅 ✒️个人主页:小鹏linux 💊个人社区:小鹏linux(个人社区)欢迎您的加入!

为大家推荐一款刷题神奇 点击链接访问牛客网

各大互联网大厂面试真题。基础题库到进阶题库等各类面试题应有尽有!

牛客网面经合集,满足大厂面试技术深度,快速构建Java核心知识体系大厂面试官亲授,备战面试与技能提升,主要考点+主流场景+内功提升+真题解析 

目录

1. Docker运行Apache实战 

1.1 Apache介绍

​ 1.2 使用官方镜像 

1.3 使用自定义镜像 

 👑👑👑结束语👑👑👑


Web服务和应用是目前信息技术领域的热门技术。本篇文章将重点介绍如何使用Docker来运行常见的Web服务器(包括 Apache、Nginx、Tomcat等) 本篇文章会展示两种创建镜像的过程。其中一些操作比较简单的镜像使用Dockerfile来创建,而像Weblogic这样复杂的应用,则使用commit方式来创建,读者可根据自己的需求进行选择。1. Docker运行Apache实战 1.1 Apache介绍Apache是一个高稳定性的、商业级别的开源Web服务器。目前Apache已经是世界使用排名第一的Web服务器软件。由于其良好的跨平台和安全性,Apache被广泛应用在多种平台和操作系统上。作为Apache软件基金会支持的项目,它的开发者社区完善而高效。自1995年发布至今,一直以高标准进行维护与开发。Apache名称源自美国的西南部一个印第安人部落:阿帕奇族,它支持类UNIX和Windows系统​ 1.2 使用官方镜像 

 官方提供了名为httpd的Apache镜像,可以作为基础Web服务镜像。编写Dockerfile文件,内容如下:

FROM httpd:2.4 COPY ./public-html /usr/local/apache2/htdocs/【云原生 | 21】Docker运行Web服务实战之Apache(云原生istio)

创建项目目录public-html,并在此目录下创建index.html文件:

<!DOCTYPE html> <html> <body> <p>Hello, Docker!</p> </body> </html> 构建自定义镜像:$ docker build -t apache2-image .

构建完成后,使用docker run指令运行镜像:

$ docker run -it --rm --name apache-container -p 80:80 apache2-image通过本地的80端口即可访问静态页面,如图所示。

 

也可以不创建自定义镜像,直接通过映射目录方式运行Apache容器:

$ docker run -it --rm --name my-apache-app -p 80:80 -v "$PWD":/usr/local/ apache2/htdocs/ httpd:2.4再次打开浏览器,可以再次看到页面输出。1.3 使用自定义镜像 首先,创建一个apache_ubuntu工作目录,在其中创建Dockerfile文件、run.sh文件和sample目录:$ mkdir apache_ubuntu$ cd apache_ubuntu $ touch Dockerfile run.sh $ mkdir sample 下面是Dockerfile的内容和各个部分的说明#设置环境变量,所有操作都是非交互式的ENVDEBIAN_FRONTENDnoninteractive #安装RUNapt-get-yqinstallapache2&&\ rm-rf/var/lib/apt/lists/*RUNecho"Asia/Shanghai">/etc/timezone&&\ dpkg-reconfigure-fnoninteractivetzdata#注意这里要更改系统的时区设置,因为在web应用中经常会用到时区这个系统变量,默认的ubuntu?会让你的应用程序发生不可思议的效果哦#添加用户的脚本,并设置权限,这会覆盖之前放在这个位置的脚本ADDrun.sh/run.shRUNchmod755/*.sh#添加一个示例的web站点,删掉默认安装在apache文件夹下面的文件,并将用户添加的示例用软链接?链到/var/www/html目录下面RUNmkdir-p/var/lock/apache2&&mkdir-p/app&&rm-fr/var/www/html&&ln-s /app/var/www/htmlCOPYsample//app#设置apache相关的一些变量,在容器启动的时候可以使用-e参数替代ENVAPACHE_RUN_USERwww-dataENVAPACHE_RUN_GROUPwww-dataENVAPACHE_LOG_DIR/var/log/apache2ENVAPACHE_PID_FILE/var/run/apache2.pid ENVAPACHE_RUN_DIR/var/run/apache2ENVAPACHE_LOCK_DIR/var/lock/apache2ENVAPACHE_SERVERADMINadmin@localhostENVAPACHE_SERVERNAMElocalhostENVAPACHE_SERVERALIASdocker.localhost ENVAPACHE_DOCUMENTROOT/var/wwwEXPOSE80WORKDIR/appCMD["/run.sh"]此sample站点的内容为输出Hello Docker!。然后在sample目录下创建index.html文件,内容如下:<!DOCTYPEhtml> <html> <body> <p>Hello, Docker!</p> <body> <html>  run.sh脚本内容也很简单,只是启动apache服务:$ cat run.sh#! /bin/bashexec apache2 -D FOREGROUND

此时,apache_ubuntu目录下面的文件结构为:

$ tree ..|-- Dockerfile |-- run.sh `-- sample`-- index.html 1 directory, 3 files下面,用户开始创建apache:ubuntu镜像: 使用docker build命令创建apache:ubuntu镜像,注意命令最后的“.”。$ docker build -t apache:ubuntu .下面开始使用docker run指令测试镜像。可以使用-P参数映射需要开放的端口(22和80端口):$ docker run -d -P apache:ubuntu 64681e2ae943f18eae9f599dbc43b5f44d9090bdca3d8af641d7b371c124acfd$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 64681e2ae943 apache:ubuntu "/run.sh" 2 seconds ago Up 1 seconds 0.0.0.0:49171->22/tcp, 0.0.0.0:49172->80/tcp naughty_poincare 890c04ff8d76 sshd:Dockerfile "/run.sh" 9 hours ago Exited (0) 3 hours ago 0.0.0.0:101->22/tcp high_albattani 3ad7182aa47f sshd:ubuntu "/run.sh" 21 hours ago Exited (0) 3 hours ago 0.0.0.0:100->22/tcp focused_ptolemy 在本地主机上用curl抓取网页来验证刚才创建的sample站点:$ curl 127.0.0.1:49172Hello Docker!大家也可以在其他设备上通过访问宿主主机ip:49172来访问sample站点。 不知道大家有没有发现,在apache镜像的Dockerfile中只用EXPOSE定义了对外开放的80端口,而在docker ps-a命令的返回中,却看到新启动的容器映射了两个端口:22和80。但是实际上,当尝试使用SSH登录到容器时,会发现无法登录。这是因为在run.sh脚本中并未启动SSH服务。这说明在使用Dockerfile创建镜像时,会继承父镜像的开放端口,但却不会继承启动命令。因此,需要在run.sh脚本中添加启动sshd的服务的命令:$ cat run.sh#!/bin/bash /usr/sbin/sshd & exec apache2 -D FOREGROUND

再次创建镜像:

$ docker build -t apache:ubuntu .这次创建的镜像,将默认会同时启动SSH和Apache服务。 下面,来看看如何映射本地目录。可以通过映射本地目录的方式,来指定容器内Apache服务响应的内容,例如映射本地主机上当前目录下的www目录到容器内 的/var/www目录:$ docker run -i -d -p 80:80 -p 103:22 -e APACHE_SERVERNAME=test -v `pwd`/www:/ var/www:ro apache:ubuntu

在当前目录内创建www目录,并放上自定义的页面index.html,内容如下:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head> <title>Hi Docker</title> </head><body> <h1>Hi Docker</h1> <p>This is the first day I meet the new world.</p> <p>How are you?</p> <hr> <address>Apache/2.4.7 (Ubuntu) Server at 127.0.0.1 Port 80</address> </body></html> 在本地主机上可访问测试容器提供的Web服务,查看获取内容为新配置的index.html页面信息。 👑👑👑结束语👑👑👑

为大家推荐一款刷题神奇 点击链接访问牛客网

各大互联网大厂面试真题。基础题库到进阶题库等各类面试题应有尽有!

牛客网面经合集,满足大厂面试技术深度,快速构建Java核心知识体系大厂面试官亲授,备战面试与技能提升,主要考点+主流场景+内功提升+真题解析

本文链接地址:https://www.jiuchutong.com/zhishi/298477.html 转载请保留说明!

上一篇:YOLOv5/v7 引入 最新 BiFusion Neck | 附详细结构图(yolov5 output)

下一篇:sortablejs的使用实践(sortable js)

  • 论坛发帖要求才能保证效果和行业进步(论坛发帖有哪些注意事项)

    论坛发帖要求才能保证效果和行业进步(论坛发帖有哪些注意事项)

  • 苹果xs max咋删除应用程序(苹果xsmax怎么删除相册)

    苹果xs max咋删除应用程序(苹果xsmax怎么删除相册)

  • iphonex为什么发烫(iphoneX为什么发热那么严重)

    iphonex为什么发烫(iphoneX为什么发热那么严重)

  • 为什么qq空间状态为私密(为什么qq空间状态为私密设置)

    为什么qq空间状态为私密(为什么qq空间状态为私密设置)

  • etc未激活标签失效

    etc未激活标签失效

  • 表格字怎么分两行

    表格字怎么分两行

  • 云录制是什么(腾讯会议云录制是什么)

    云录制是什么(腾讯会议云录制是什么)

  • 平板电脑鼠标不动了怎么办(平板电脑鼠标不受控制怎么办)

    平板电脑鼠标不动了怎么办(平板电脑鼠标不受控制怎么办)

  • 数据库主码可以重复吗(数据库如何定义主码)

    数据库主码可以重复吗(数据库如何定义主码)

  • iPad上面压书会压坏吗(ipad拿书压一晚上有事吗)

    iPad上面压书会压坏吗(ipad拿书压一晚上有事吗)

  • 闲鱼网买东西不发货怎么办(闲鱼网买东西不想要了可以拒签吗)

    闲鱼网买东西不发货怎么办(闲鱼网买东西不想要了可以拒签吗)

  • 苹果黑白名单关闭是什么意思(苹果黑白名单关闭还能官解)

    苹果黑白名单关闭是什么意思(苹果黑白名单关闭还能官解)

  • 抖音能横屏播放吗(抖音横屏播放下一个视频)

    抖音能横屏播放吗(抖音横屏播放下一个视频)

  • 苹果阻止来电有记录嘛(苹果阻止来电有记录最近记录是多少天的)

    苹果阻止来电有记录嘛(苹果阻止来电有记录最近记录是多少天的)

  • 魅族x8能插u盘么(魅族x8能插u盘么嘛)

    魅族x8能插u盘么(魅族x8能插u盘么嘛)

  • ps怎么把图连在一起(ps怎么把图片链接在一起)

    ps怎么把图连在一起(ps怎么把图片链接在一起)

  • iphonex背景虚化怎么拍(iphonex怎么背景虚化)

    iphonex背景虚化怎么拍(iphonex怎么背景虚化)

  • 手机管家流量监控怎么设置(手机管家流量监控准不准)

    手机管家流量监控怎么设置(手机管家流量监控准不准)

  • 屏蔽和拉黑的横线区别(屏蔽和拉黑的横线区别图片)

    屏蔽和拉黑的横线区别(屏蔽和拉黑的横线区别图片)

  • 小米5多大屏幕尺寸(小米多大屏幕尺寸)

    小米5多大屏幕尺寸(小米多大屏幕尺寸)

  • 小米9有耳机孔吗(小米9耳机孔进水)

    小米9有耳机孔吗(小米9耳机孔进水)

  • 荣耀20如何添加小工具(荣耀20如何添加门禁卡)

    荣耀20如何添加小工具(荣耀20如何添加门禁卡)

  • 充电宝怎么修(充电宝怎么修复容量)

    充电宝怎么修(充电宝怎么修复容量)

  • 快手一秒变身怎么弄(快手变身视频)

    快手一秒变身怎么弄(快手变身视频)

  •  打开旁白是干啥用(打开旁白后 黑屏应该怎么解除)

    打开旁白是干啥用(打开旁白后 黑屏应该怎么解除)

  • 小米8支持多少瓦快充(小米8支持多少w闪充)

    小米8支持多少瓦快充(小米8支持多少w闪充)

  • 海恩斯章克申附近克鲁瓦尼国家公园中冰川和山脉的鸟瞰图,加拿大育空 (© Robert Postma/plainpicture)(海恩斯科普简介)

    海恩斯章克申附近克鲁瓦尼国家公园中冰川和山脉的鸟瞰图,加拿大育空 (© Robert Postma/plainpicture)(海恩斯科普简介)

  • 深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)

    深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)

  • 使用DEDECMS织梦自带的邮件功能实现自定义表单邮件通知(织梦怎么调用当前栏目下的文章)

    使用DEDECMS织梦自带的邮件功能实现自定义表单邮件通知(织梦怎么调用当前栏目下的文章)

  • 购买车辆保险的报告
  • 减资需要交个税吗
  • 企业按照行业分类为
  • 银行对账单由谁去取
  • 贸易公司经营范围有限制吗
  • 股东借钱给公司,公司经营不善倒闭!借款公司要还不
  • 个体工商户能否转让
  • 有形净资产负债率怎么计算
  • 固定资产按月折旧了,还能一次折旧么
  • 固定资产累计折旧借贷方向
  • 公司注销固定资产怎么处理税怎么交
  • 给员工交的重大医疗保险怎么做分录?
  • 企业会计做无票收入也要交税吗?
  • 向银行借款一年是长期还是短期
  • 折扣折让的销售方式有哪些
  • 上市公司个税手续流程
  • 公司房产出租租金如何开票?
  • 工资五险一金和税怎么处理
  • 生产企业研发用原料抵进项可以吗?
  • 野生药才收购网
  • 税收的凭证有哪几种
  • 固定资产可以一次性计入成本费用吗
  • 小规模企业所得税优惠政策最新2023
  • 企业购车可以一次性扣除吗
  • 预缴企业所得税分录
  • 收到委托代销清单,确认收入的会计分录
  • photoshop人像磨皮方法
  • 内部控制制度包括哪些基本内容?
  • 分配的水电费属于什么会计要素
  • 个体工商户税收标准2023年
  • 格拉纳达的阿尔罕布拉宫用什么材料制成?
  • 加计扣除符合的条件
  • vue插槽有什么作用
  • vue获取设备id
  • 前端面试题必问的题目
  • thinkphp 分页
  • php+jquery+html实现点击不刷新加载更多的实例代码
  • php递归算法经典题目
  • “php”
  • 进出口会计账务处理
  • 建筑企业异地预缴增值税计算
  • 年末本年利润怎么结转
  • 外经证预缴税款之后剩下的税款交到哪呢
  • 进销存表格模板明细账
  • 应付职工薪酬属于什么会计科目
  • mysql密码忘记了咋办
  • 轿车折旧年限为几年
  • 企业累计预扣个税是什么
  • 个体户开电子发票怎么申请
  • 税控盘服务费小规模可以抵扣吗
  • 扫码开票软件
  • 现金预算包括哪些内容,来源是什么
  • 研发支出资本化计入什么科目
  • 减免城建税的会计分录
  • 未开票收入如何结转成本
  • 冲去年管理费用
  • 预收工程款怎么做账
  • 公司费用分摊给各部门
  • 材料核销的依据
  • 员工垫付的费用怎样记账
  • 单位租个人房子租房合同
  • 限额领料单属于什么凭证多选题
  • vmware虚拟机找不到了
  • winxp怎么做系统
  • win7同步中心怎么关掉
  • centos7 lvs
  • win10更新后安装包会自动删除吗
  • Android开发如何找到TextView指定文本
  • ubuntu nfs配置
  • nodemoudles可以复制粘贴别的电脑运行程序吗
  • jquery 文本框
  • 深入理解中国式现代化
  • javascript零基础入门书籍
  • Javascript & DHTML 实例编程(教程)DOM基础和基本API
  • python异常处理的关键词
  • python日志文件
  • jQuery实现的可编辑表格完整实例
  • jquery的哪个方法可以绑定mouseover
  • 车位交易费用
  • 资源税的作用是什么?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设