zoukankan      html  css  js  c++  java
  • 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.

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

    希望可以帮到大家!!!

  • 相关阅读:
    深度学习笔记之关于基本思想、浅层学习、Neural Network和训练过程(三)
    深度学习笔记之关于特征(二)
    深度学习笔记之概述、背景和人脑视觉机理(一)
    初步认识深度学习笔记(一)
    EM(期望最大化)算法初步认识
    Ubuntu16.04下安装Tensorflow GPU版本(图文详解)
    Ubuntu16.04下安装Tensorflow CPU版本(图文详解)
    [转]粤语学习
    [转]微信公众平台开发(十) 消息回复总结
    [转]C#开发微信公众平台-就这么简单
  • 原文地址:https://www.cnblogs.com/lfz0/p/11956629.html
Copyright © 2011-2022 走看看