原生脚本:
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
祝大家都一个自己的小脚本
