步骤:
(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;"]
标签:RUN,CentOS,repos,nginx,yum,install,镜像,Docker From: https://www.cnblogs.com/xupengxiang/p/18285562