首先我们编写一个简单的Dockerfile的例子。不过再此之前大家得去把编写dockerfile的指令了解一下。

编写以 centos镜像为基础镜像,构建 http 服务,Dockerfile 要求删除镜像的 yum 源,使用当前系统的 yum 源文件,完成后安装 http 服务,此镜像要求暴露 80 端口。构建的镜像名字叫 http:v1.0。

我们首先要来理解一下题目的要求,第一步我们需要创建一个空的文件夹mydocker,在这个文件夹里准备我们所需要的文件。如下所示。

[root@server mydocker]# ls
dockerfile2  yum.repo

第二步我们具体编写dockerfile2里面的内容。当然这里的dockerfile2这是笔者自己定义的,你们可以根据自己的意愿来定义。编写的内容如下:

FROM centos:latest
MAINTAINER lfz@852
RUN rm -rf /etc/yum.repos.d/*
ADD yum.repo /etc/yum.repos.d/
RUN yum clean all
RUN yum install -y httpd
EXPOSE 80

在这里呢,笔者想重点说明一下yum的问题,题干中所提到的Dockerfile 要求删除镜像的 yum 源,使用当前系统的 yum 源文件。这里的意思是,删除除我们构建的镜像的yum源,而使用当前系统的yum源,是指宿主机的yum源。但是呢,这里的yum源并不是我们之前配置的本地yum源,而是存在与/etc/yum.repo.d下面的所有源文件。

下面给大家看一下我之前创建yum.repo文件,大家就能明白。

[root@server mydocker]# ls yum.repo/
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo

最后呢,我们依据我们创建的dockerfile2 docker build 一个新的镜像。

[root@server mydocker]# docker build -f /mydocker/dockerfile2 -t http.v1.0 .
Sending build context to Docker daemon 15.87 kB
Step 1 : FROM centos:latest
 ---> ff426288ea90
Step 2 : MAINTAINER lfz@852
 ---> Running in 0730eeb7f233
 ---> 37be11bdf981
Removing intermediate container 0730eeb7f233
Step 3 : RUN rm -rf /etc/yum.repos.d/*
 ---> Running in 803722a3ff8b
 ---> 6d3a727a9804
Removing intermediate container 803722a3ff8b
Step 4 : ADD yum.repo /etc/yum.repos.d/

步骤笔者这里就不全部展示了。构建的过程可能有点久,耐心等待。

不过呢,这里来提醒一下,在构建过程当中可能会遇到下面这种情况。

http://mirrors.tuna.tsinghua.edu.cn/centos/7.7.1908/updates/x86_64/repodata/8e9b9348c76f762ec88992f1e6437a169cdf5e259742714c864d6e2c81c7ede5-primary.sqlite.bz2: [Errno 12] Timeout on http://mirrors.tuna.tsinghua.edu.cn/centos/7.7.1908/updates/x86_64/repodata/8e9b9348c76f762ec88992f1e6437a169cdf5e259742714c864d6e2c81c7ede5-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.

这并不是报错,所以也不需要去打断构建的过程。

希望可以帮到大家!!!

Dockerfile的简单人门编写之关于yum的问题的更多相关文章

  1. ArcGIS Python人门到精通目录基于ArcGIS10.2,100以上案例15章42个视频806分钟,51GIS网站上线

    ArcGIS Python人门到精通目录 闫老师 QQ:276529800 微信13108507190 1.  ArcGIS Python基础 1.1  ArcGIS为什么学习Python 1.2 A ...

  2. react-native-pg-style使用方法(以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式.)

    react-native-pg-style 以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式. 看大家写的源码中都是按照react-native标准的样式创建方式来写样式代码 ...

  3. android Jni NDK开发环境搭建及其简单实例的编写

    android  Jni  NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...

  4. Redis的人门以及使用

    1.Redis的安装 1.1centos下安装Redis 1.1.1 安装gcc 1.1.2 安装过程  图一 图三 2.Redis的启动 2.1 前端模式启动(不推荐) 截图 2.2 后端模式(推荐 ...

  5. python教程:用简单的Python编写Web应用程序

    python现在已经成为很多程序员关注的编程语言之一,很多程序员也都开始弄python编程,并且很多时候都会用自己的操作来选择,而现在不管是程序员还是少儿编程,都会有python这门课,今天就和大家分 ...

  6. Bootstrap 快速人门案例——前端最火的插件

    今天,我给小白们分享一下比较流行的Bootstrap框架,它在工作中得到许多公司的青睐,因此对于升职和加薪很重要.同时,我们可以快速完成开发任务,减少发开周期,有不对的地方望大家指正. 如果你想走的更 ...

  7. DirectShow基础编程 最简单transform filter 编写步骤

    目标编写一个transform filter,功能是对图像进行翻转. 一.选择基类 从CBaseFilter派生出三个用于编写transform filter的类,各自是:CTransformFilt ...

  8. python爬虫人门(10)Scrapy框架之Downloader Middlewares

    设置下载中间件(Downloader Middlewares) 下载中间件是处于引擎(crawler.engine)和下载器(crawler.engine.download())之间的一层组件,可以有 ...

  9. 简单python接口测试编写和django开发环境的搭建

    安装django环境 启动django D:\python\imooc>python manage.py runserver 0.0.0.0:8000 命令行下django新建app D:\py ...

随机推荐

  1. nginx 配置反向代理解决请求跨域问题

    server { listen ; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; roo ...

  2. Visio2013 专业版激活码和激活工具 亲测有效

    Visio2013密钥 专业版:Visio Professional 2013 KEY C2FG9-N6J68-H8BTJ-BW3QX-RM3B3 2NYF6-QG2CY-9F8XC-GWMBW-29 ...

  3. 关于 IDEA 启动 springboot 项目异常 - Disconnected from the target VM, address: '127.0.0.1:59770', transport: 'socket'

    关于 IDEA 启动 springboot 项目异常 - Disconnected from the target VM, address: '127.0.0.1:59770', transport: ...

  4. CSS3实现3D转换

    实现效果: 当鼠标悬停在图片上面时,图片发生翻转,文案出来,鼠标取消之后就又恢复 实现代码: <!DOCTYPE html> <html lang="en"> ...

  5. Python面向对象之异常处理

    1:什么是异常 异常就是在我们的程序在运行过程中由于某种错误而引发Python抛出的错误: 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序 ...

  6. 新建jsp文件,The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path错误解决方法

    新建一个jsp文件后,有一个错误,The superclass "javax.servlet.http.HttpServlet" was not found on the Java ...

  7. C语言 文件操作(四)

    1.fprintf int fprintf(FILE *stream, const char *format, ...) stream -- 这是指向 FILE 对象的指针,该 FILE 对象标识了流 ...

  8. python--->相对和绝对路径

    绝对路径(absolute path):从根开始找 eg:c:\file\01.txt 相对路径(relative path):相对当前文件内找 ../      # 当前文件的上一级 os.path ...

  9. spark模型error java.lang.IllegalArgumentException: Row length is 0

    failure: Lost task 18.3 in stage 17.0 (TID 59784,XXXXX, executor 19): java.lang.IllegalArgumentExcep ...

  10. 超过百万的StackOverflow Flutter 问题

    老孟导读:今天分享StackOverflow上高访问量的20大问题,这些问题给我一种特别熟悉的感觉,我想你一定或多或少的遇到过,有的问题在stackoverflow上有几十万的阅读量,说明很多人都遇到 ...