首页 > 其他分享 >Dockerfile构建镜像(练习一Apache镜像)(5-1)

Dockerfile构建镜像(练习一Apache镜像)(5-1)

时间:2024-11-12 16:49:53浏览次数:3  
标签:容器 centos apache yum Apache 镜像 Dockerfile

目录

指令详解

本章实例:

1.创建工作目录

2.在工作目录中创建并编写Dockerfile文件

(1)保证拥有centos基础镜像

3.编写相关执行脚本

##添加启动镜像启动执行脚本

#设置centos.repo仓库文件

Docker主机需要搭建yum仓库

4.使用Dockerfile生成镜像 

5.使用新镜像运行容器测试

#查看容器是否启动

验证:

6.将镜像导出保存


Dockerfile 是一个用来构建 Docker 镜像的文本文件

Dockerfile是由一组指令组成的文件

Dockerfile结构大致组成为基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

 

指令详解

Dockerfile 指令

说明

FROM

指定基础镜像

MAINTAINER

指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令)

LABEL

添加镜像的元数据,如:版本、作者、邮箱等信息

RUN

构建镜像时运行的命令。

ADD

添加文件或目录到镜像中,可以是本地文件,也可以是 url。如果添加.gz

格式压缩包,会自动解压。

ENTRYPOINT

设置容器创建时的主要命令。(不可被覆盖)

EXPOSE

指定容器运行后的监听端口,协议默认TCP。

ENV

在容器内部设置环境变量。

CMD

启动容器时执行的 Shell 命令。在 Dockerfile 中只能有一条 CMD 指令。

如果设置了多条 CMD,只有最后一条会生效。

COPY

将文件或目录复制到镜像中。

VOLUME

为容器创建挂载点或声明卷。

WORKDIR

设置后续指令的工作目录。

USER

指定后续指令的用户上下文。

ARG

定义在构建过程中传递给构建器的变量,可使用 "docker build" 命令设置。

ONBUILD

当该镜像被用作另一个构建过程的基础时,添加触发器。

STOPSIGNAL

设置发送给容器以退出的系统调用信号。

HEALTHCHECK

定义周期性检查容器健康状态的命令。

SHELL

覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。

 

本章实例:

使用Dockerfile创建Apache镜像并在容器中运行

1.创建工作目录

mkdir apache
cd apache

2.在工作目录中创建并编写Dockerfile文件

(1)保证拥有centos基础镜像

docker images | grep centos

(2)编写dockerfile文件

vim Dockerfile
#定义基础镜像
FROM centos:7

#维护者信息(可缺省)
MAINTAINER devopsxjh

#添加备注信息(可缺省)
LABEL user="devopsxjh"\
      gronp="CSDN"

#设置本地yum源
RUN mkdir /etc/yum.repos.d/bak;mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak

ADD centos.repo /etc/yum.repos.d/centos.repo

#安装Apache服务以及一些系统工具
RUN yum clean all;yum -y install wget net-tools vim httpd

#开启端口80
EXPOSE 80

#编写测试网页,网页文件较大的话建议使用ADD上传
RUN echo '<font color=red><h1>hello dockerfile ! ! !</h1>' > /var/www/html/index.html

#复制脚本到镜像中
ADD run.sh /run.sh
RUN chmod 755 /run.sh

#启动容器时执行脚本(制作镜像中不运行)
CMD ["/run.sh"]

#启动容器时执行脚本(制作镜像中不运行)
CMD ["/run.sh"]

3.编写相关执行脚本

##添加启动镜像启动执行脚本

[root@docker apache]# vim run.sh
#!/bin/bash
#清理httpd的缓存
rm -fr /run/httpd/*

# 启动apache服务
exec /usr/sbin/apachectl -D FOREGROUND

#设置centos.repo仓库文件

 vim centos.repo
[local]

name=centos7.9

baseurl=ftp://192.168.100.101/centos

enable=1

gpgcheck=0

Docker主机需要搭建yum仓库

(1)关闭防火墙

(2)安装Vsftpd包

(3)在FTP根目录下 创建仓库目录

(4)把光盘挂载到仓库目录

(5)开启FTP服务

(6)用真机测试FTP

提示:如果觉得搭建ftp仓库繁琐,可以考虑http仓库

4.使用Dockerfile生成镜像 

命令语法:

docker build [选项] 路径

docker build -t apache:t1 .

5.使用新镜像运行容器测试

docker run -d -p 8080:80 --name apache apache:t1

#查看容器是否启动

docker ps

验证:

浏览器访问

6.将镜像导出保存

docker save apache -o apache

标签:容器,centos,apache,yum,Apache,镜像,Dockerfile
From: https://blog.csdn.net/weixin_72819498/article/details/143718457

相关文章

  • Z-library数字图书馆镜像地址/官网入口及客户端app (长期更新)
    Z-Library是一家电子图书馆,被誉为全球最大的科学图书和学术文献免费资源之一。它创办于2009年,截至2022年10月1日,已收录超过1129万本图书和8483万篇学术文章。从各种知名文学著作,理工学科,人文艺术、到学术论文等应有尽有!支持PDF、epub、mobi等多种格式图书资源下载绝对是你找书的不......
  • 将本地安装的Python库集成到Docker镜像
    1.确定本地库的位置和格式首先,你需要明确本地库的位置和格式。如果是Python库,它可能是以.whl(wheel格式)、.tar.gz(压缩包格式)或者是一个包含源代码的目录形式存在。2.使用COPY或ADD指令(对于简单的本地库文件)COPY指令:如果本地库是一个简单的文件(如.whl或.tar.gz),可......
  • Z-library数字图书馆镜像网址入口及客户端/app (持续更新)
    Z-Library(简称z-lib,前身为BookFinder)是一个影子图书馆和开放获取文件分享计划,用户可在此网络下载期刊文章以及各种类型的书籍。截止2022年6月12日,该网站共收录了10,456,034本书和84,837,646篇文章。zlibrary电脑客户端/安卓appzlibrary(windows/mac/安卓/ipad)安装包下载:https......
  • OMV安装文件管理器filebrowser和照片管理photoprism插件时Pull不了镜像的解决办法
    OMV安装文件管理器filebrowser和照片管理photoprism插件安装后不能启动服务或者PULL不了镜像卡着不动都是因为现在国内pull不了镜像的原因这里有个迷惑的人的地方是很多朋友认为是用docker来pull的镜像,于是增加了docker国内加速源后发现OMV还是拉取不了镜像。解决方法如下:因为OM......
  • web服务器Apache与Nginx的优缺点?
    Apache是一个开放源代码的Web服务器软件,它能够运行在几乎所有主流的操作系统上,包括Unix、Linux、Windows、MacOS等。ApacheHTTP服务器是世界上最流行的Web服务器之一,它由Apache软件基金会维护和支持。Apache提供了强大的功能,包括:可配置性:用户可以通过配置文件来......
  • apachectl——Apache服务器前端控制工具
    转自于:https://github.com/jaywcjlove/linux-command,后不赘述apachectlApache服务器前端控制工具补充说明apachectl命令是Apache的Web服务器前端控制工具,用以启动、关闭和重新启动Web服务器进程。语法apachectl(参数)参数configtest:检查设置文件中的语法是否正确;ful......
  • RAW镜像格式介绍
    本文分享自天翼云开发者社区《RAW镜像格式介绍》,作者:z****nRAW(Raw Disk Image)是一种简单而基本的虚拟化镜像格式,用于存储虚拟机的磁盘内容。它是一种原始的二进制文件格式,直接将虚拟机的磁盘映像保存为连续的字节流,没有经过特定的压缩或加密处理。以下是对RAW格式的一些介绍:......
  • 开发更便利!迅为RK3568/RK3588 定制分区镜像发布
             迅为iTOP-3588开发板采用瑞芯微RK3588处理器,是全新一代AloT高端应用芯片,采用8nmLP制程,搭载八核64位CPU(四核Cortex-A76+四核Cortex-A55架构),集成MaliG610MP4四核GPU,内置AI加速器NPU,算力达6Tops,集成独立的8K视频硬件编码器和硬件解码器,提供了许多功能强大的......
  • [CKS] K8S Dockerfile和yaml文件安全检测
    最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于Dockerfile和yaml文件安全检测的题目。​专栏其他文章:[CKS]Create/Read/MountaSecretinK8S-CSDN博客[CKS]AuditLogPolicy-CSDN博客-[CKS]利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS]......
  • Docker容器镜像打成tar包
    简述需求:用户要求分系统输出镜像tar包,上传zip包利用平台统一管理。利用docker容器保存镜像进行打包,在另一台服务上使用。利用Dockerfile来打tar包什么是Dockerfile?Dockerfile是一个文本文件,包含了构建Docker镜像的所有指令。Dockerfile是一个用来构建镜像的文本文件,文......