原生脚本:

FROM centos  #基于什么镜像
MAINTAINER liulei<2543770337@qq.com>  #这个镜像的声明,刘磊 邮箱***
ENV MYPATH /usr/local    #镜像创建的容器 工作目录为****
WORKDIR $MYPATH 作用:WORKDIR 指令用于设置工作目录。后续的 RUN、CMD、ENTRYPOINT、COPY 和 ADD 指令都将在这个目录下执行。
环境变量:$MYPATH 是一个环境变量,表示你希望设置的工作目录的路径。你需要在 Dockerfile 中先定义这个环境变量,通常使用 ENV 指令。 效果:当你设置了 WORKDIR $MYPATH 后,所有后续的命令都会在 /path/to/directory 目录下执行。
RUN yum -y install vim #整个镜像是干什么的
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH 
作用:CMD 指令用于指定容器启动时要执行的命令。它可以被 docker run 命令中的参数覆盖。
环境变量:在 CMD 中使用 $MYPATH,表示在容器启动时会输出这个环境变量的值。
效果:当你运行这个容器时,echo $MYPATH 会输出环境变量 MYPATH 的值。如果 MYPATH 没有被定义,输出将为空。
CMD echo "-------end-------"
CMD /bin/bash 控制台
上述备注是AI添加的,注意修改格式

上述格式是有问题的,请注意自己修改一下中文备注,但是不重要反正也会报错的

开始构建

开始构建

docker build -f mydockerfile-centos -t mycentos:0.1 . --no-cache
#参数说明:-f  #来自那个文件
          -t #镜像名称和版本号
          !后面有个点 “.” !

注意这里正常会报错的

因为yum源的问题

原因

如果报错这个说明是2022年之后的centos的7版本已经停止运维,最新版本是centos:8的,执行yum 根据docker 镜像中的yum 源配置来获取的并非宿主机的配置,所以需要手动先把正确的centos 7 yum 配置文件拷贝到容器目录下。

解决方法:

操作步骤如下:第一更新源

cd /home/dockerfile 进入目录,依次执行下列两条命令将centos7 的yum源配置文件下载到当前目录

wget http://mirrors.aliyun.com/repo/epel-7.repo
wget http://mirrors.aliyun.com/repo/Centos-7.repo
修改 mydockerfile-centos 文件,在yum 命令之前添加配置,完整的配置内容如下

第二重新配置脚本

FROM centos:7
MAINTAINER liulei<2543770337@qq.com>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN  rm -rf /etc/yum.repos.d/*
COPY ./*  /etc/yum.repos.d/
RUN yum-config-manager --enable base!新增
RUN yum-config-manager --enable extras!新增
RUN yum-config-manager --enable updates!新增
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "-------end-------"
CMD /bin/bash

然后重新构建项目

docker build -f mydockerfile-centos -t mycentos:0.1 . --no-cache

祝大家都一个自己的小脚本

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注