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 ...
随机推荐
- mysql之日志
我是李福春,我在准备面试,今天的题目是: mysql的redolog和binlog有什么区别? 答: 如下面的表格, redolog vs binlog 然后我们扩展一下,因为日志主要是记录的修改日志 ...
- HDU - 1503 最长公共子序列记录路径
题意:先给两个水果的名字然后得出一个最短的序列包含这两个词. 思路:我一开始的思路是先求出最长公共子序列,然后做一些处理将其他的部分输出来:两种水果的字符串和最长公共子序列的字符串这三个字符串做对比, ...
- arcgis server建完站点之后修改默认6080端口号
1.首先找到arcgis server的安装路径,找到server.xml文件,修改其中一处的6080端口为你想更改的端口号,例如8888.具体操作如下图所示: 默认的安装路径为:D:\Program ...
- SpringBoot 性能调优
1, 默认情况下,我们会使用 @SpringBootApplication 注解来自动获取应用的配置信息,但这样也会给应用带来一些副作用.使用这个注解后,会触发自动配置( auto-configura ...
- Spring事物传播行为
Spring事物传播行为 Spring中事务的定义: Propagation(key属性确定代理应该给哪个方法增加事务行为.这样的属性最重要的部份是传播行为.)有以下选项可供使用: PROPAGATI ...
- elasticsearch报Fielddata is disabled on text fields by default
我刚玩elk没几天,今天启动kibana之后执行查询看见elasticsearch报了一个错误 Caused by: java.lang.IllegalArgumentException: Field ...
- wsl中配置SML环境
配置SML/NJ #安装 sudo apt install smlnj #但是wsl不支持32位程序,所以需要下面配置 sudo dpkg --add-architecture i386 sudo a ...
- js 调用铃声
<audio autoplay="autoplay" id="auto" src=""> </audio> play ...
- DIV+CSS 样式简单布局Tab 切换
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- ThinkPHP3.2.3发送微信模板消息
一.开通模板消息功能 所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限:需要选择公众账号服务所处的2个行业,每月可 ...