Dockerfile的简单人门编写之关于yum的问题
首先我们编写一个简单的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的问题的更多相关文章
- ArcGIS Python人门到精通目录基于ArcGIS10.2,100以上案例15章42个视频806分钟,51GIS网站上线
ArcGIS Python人门到精通目录 闫老师 QQ:276529800 微信13108507190 1. ArcGIS Python基础 1.1 ArcGIS为什么学习Python 1.2 A ...
- react-native-pg-style使用方法(以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式.)
react-native-pg-style 以最简单的方式编写样式代码,抛弃react-native标准的样式创建方式. 看大家写的源码中都是按照react-native标准的样式创建方式来写样式代码 ...
- android Jni NDK开发环境搭建及其简单实例的编写
android Jni NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...
- Redis的人门以及使用
1.Redis的安装 1.1centos下安装Redis 1.1.1 安装gcc 1.1.2 安装过程 图一 图三 2.Redis的启动 2.1 前端模式启动(不推荐) 截图 2.2 后端模式(推荐 ...
- python教程:用简单的Python编写Web应用程序
python现在已经成为很多程序员关注的编程语言之一,很多程序员也都开始弄python编程,并且很多时候都会用自己的操作来选择,而现在不管是程序员还是少儿编程,都会有python这门课,今天就和大家分 ...
- Bootstrap 快速人门案例——前端最火的插件
今天,我给小白们分享一下比较流行的Bootstrap框架,它在工作中得到许多公司的青睐,因此对于升职和加薪很重要.同时,我们可以快速完成开发任务,减少发开周期,有不对的地方望大家指正. 如果你想走的更 ...
- DirectShow基础编程 最简单transform filter 编写步骤
目标编写一个transform filter,功能是对图像进行翻转. 一.选择基类 从CBaseFilter派生出三个用于编写transform filter的类,各自是:CTransformFilt ...
- python爬虫人门(10)Scrapy框架之Downloader Middlewares
设置下载中间件(Downloader Middlewares) 下载中间件是处于引擎(crawler.engine)和下载器(crawler.engine.download())之间的一层组件,可以有 ...
- 简单python接口测试编写和django开发环境的搭建
安装django环境 启动django D:\python\imooc>python manage.py runserver 0.0.0.0:8000 命令行下django新建app D:\py ...
随机推荐
- Notepad++正则表达式查找替换文本中文字符
测试需求 测试工具中xml配置文件中注释字段包含中文字符,在Win10系统下使用工具中偶尔会出现中文乱码导致配置文件失效.解决方法将配置文件中的中文注释换成英文注释或者直接替换删除.如何将配置文件中的 ...
- js的预编译
JavaScript不会完全按照代码的顺序执行,在执行之前会对定义的函数和变量先来一边所谓的预编译处理. 先来说下对变量的预处理: console.log(a) //undefined var a = ...
- AssociatedObject
在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量,值得庆幸的是,我们可以通过 Associated Objects 来弥补这一不足. 在阅读本文 ...
- 原来rollup这么简单之 tree shaking篇
大家好,我是小雨小雨,致力于分享有趣的.实用的技术文章. 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步. 分享不易,希望能够得到大家的支持和关注. 计划 rollup系列打算 ...
- CSS3+CSS+HTML实现网页
效果图: 代码实现: 样式部分style.css: *{ margin:; padding:; } body{ background-color: #673929; font-size: 16px; ...
- 谈谈surging 与多语言混合微服务构思
1.前言 微服务架构已成为目前互联网架构的趋势,关于微服务的讨论,几乎是各大技术论坛.技术大会的热门话题.而Surging是高性能的模块化微服务引擎,是大家首选微服务引擎架构之一,而针对于框架有个突出 ...
- Y分形的平面微带天线生成过程
Y分形的平面微带天线生成过程 本文介绍了使用Altium Designer脚本程序生成Y型天线的过程,在窗体中线宽.迭代次数,边框长度可以直接设置. Y分形天线用户界面由一个窗体.1个TImage控件 ...
- HTTP Session例子
HTTP协议是“一次性单向”协议.服务端不能主动连接客户端,只能被动等待并答复客户端请求.客户端连接服务端,发出一个HTTP Request,服务端处理请求,并且返回一个HTTP Response给客 ...
- scratch 如何改变变量的作用域
在新建变量的时候,有个选项是“适用于所有角色”还是“仅适用于当前角色”.通常称前者为全局变量,所有角色都可以访问到这个变量:后者,称为局部变量,只能在当前角色里访问到这个变量.例如,在使用克隆功能时, ...
- eclipse 使用 快捷键
ctrl + t :查看类的子类和实现类 ctrl + o 查看类实现的方法 ctrl + 1 相当于idea的 alt + enter 补全变量 syso 点 alt + / System.out ...