Docker 构建nginx镜像

  步骤:

(1)创建一个目录,把构建Nginx的Dockerfile文件保存到此目录。

创建一个名为nginxDockerfile的目录。

mkdir nginxDockerfile

(2)进入刚才创建好的目录。

cd nginxDockerfile

(3)创建Dockerfile文件。

vim dockerfile

  文件内容如下

FROM centos
MAINTAINER xpx
RUN yum install wget -y
RUN yum install nginx -y
COPY index.html /usr/share/nginx/html/
EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

直接执行上面的可能会报错

分析:根据上面的报错显示是镜像源地址访问不到,然后更改/etc/yum.repos.d/CentOS-Base.repo 文件加入AppStream为阿里云的镜像地址还是不行,依然报错

接着直接在dockerfile文件中更改上面报错的http://mirrorlist.centos.org地址将其替换为阿里云的mirrors.aliyun.com

FROM centos:7  # 本地环境是CentOS 7.9所以这里更换为7
MAINTAINER xpx
RUN sed -i 's|mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo \
    && sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*.repo \
    && yum clean all \
    && yum makecache  #根据报错替换地址并且更新yum缓存
RUN yum install wget -y
RUN yum install nginx -y
COPY index.html /usr/share/nginx/html/
EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

更改完后继续执行docker build -t="xpx/nginx:v1" . 构建

这时报下载nginx的错误

搜索问题说是缺少EPEL 仓库的问题,但是查看yum.repos.d目录下发现是有改仓库文件的

可见dockerfile 执行yum install nginx时没有用到/etc/yum.repos.d下的仓库文件。

这时添加RUN yum install -y epel-release命令

FROM centos:7
MAINTAINER xpx
RUN sed -i 's|mirrorlist=|#mirrorlist=|g' /etc/yum.repos.d/CentOS-*.repo \
    && sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*.repo \
    && yum clean all \
    && yum makecache
RUN yum install -y epel-release
RUN yum install wget -y
RUN yum install nginx -y
COPY index.html /usr/share/nginx/html/
EXPOSE 80
ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

 

posted @ 2024-07-05 12:02  ~技术小白  阅读(2)  评论(0编辑  收藏  举报