首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在构建停靠映像时为repo: base/7/x86_64找到有效的base for

无法在构建停靠映像时为repo: base/7/x86_64找到有效的base for
EN

Stack Overflow用户
提问于 2016-03-06 08:50:35
回答 4查看 8.4K关注 0票数 1

我想要基于centos 7构建一个码头映像,dockerfile如下所示

代码语言:javascript
复制
FROM centos
MAINTAINER pengji jipeng92@gmail.com
WORKDIR /root
COPY MySQL-5.6.26 /mysql
RUN yum update
RUN yum  -y install java-1.8.0-openjdk wget httpd php php-mysqlnd /mysql/*
RUN mysql_install_db --user=mysql
ENV MYSQL_ROOT_PASSWORD=root
ENV MYCAT_USER mycat
ENV MYCAT_PASS mycat
RUN wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.64/bin/apache-tomcat-7.0.64.tar.gz
RUN tar xvf apache-tomcat-7.0.64.tar.gz -C /usr/local/ && mv /usr/local/apache-tomcat-7.0.64/ /usr/local/tomcat
RUN wget http://code.taobao.org/svn/openclouddb/downloads/old/MyCat-Sever-1.2/Mycat-server-1.2-GA-linux.tar.gz
RUN mkdir /usr/local/mycat && tar xvf Mycat-server-1.2-GA-linux.tar.gz -C /usr/local/mycat && useradd mycat && \
chown -R mycat.mycat /usr/local/mycat && chmod a+x /usr/local/mycat/bin/*
EXPOSE 8080 8066 9066
COPY /home/jipeng/dockerfiles/dataguru/java_tomcat_mysql/startup.sh /root/startup.sh
RUN chmod a+x /root/startup.sh
ENTRYPOINT /root/startup.sh

然后按命令构建

代码语言:javascript
复制
docker build -t pengji/mycat .  

该过程如下

代码语言:javascript
复制
Sending build context to Docker daemon   317 MB
Step 0 : FROM centos
 ---> bb3d629a7cbc
Step 1 : MAINTAINER pengji jipeng92@gmail.com
 ---> Using cache
 ---> cdbbb4de4d8e
Step 2 : WORKDIR /root
 ---> Using cache
 ---> 6d6a40194219
Step 3 : COPY MySQL-5.6.26 /mysql
 ---> Using cache
 ---> 7cfa1ec8c6b9
Step 4 : RUN yum update
 ---> Running in fc44891ca20a
Loaded plugins: fastestmirror, ovl


 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

 1. Contact the upstream for the repository and get them to fix the problem.

 2. Reconfigure the baseurl/etc. for the repository, to point to a working
    upstream. This is most often useful if you are using a newer
    distribution release than is supported by the repository (and the
    packages for the previous distribution release still work).

 3. Disable the repository, so yum won't use it by default. Yum will then
    just ignore the repository until you permanently enable it again or use
    --enablerepo for temporary usage:

        yum-config-manager --disable <repoid>

 4. Configure the failing repository to be skipped, if it is unavailable.
    Note that yum will try to contact the repo. when it runs most commands,
    so will have to try and fail each time (and thus. yum will be be much
    slower). If it is a very temporary problem though, this is often a nice
    compromise:

        yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

无法找到回购的有效基url: base/7/x86_64

我该如何解决这个问题?谢谢。

EN

回答 4

Stack Overflow用户

发布于 2017-06-20 14:35:06

也许您设置了http_proxy,并且无法访问代理服务器。未设置http_proxy

票数 2
EN

Stack Overflow用户

发布于 2020-07-17 04:33:26

通过添加一些防火墙规则来解决这个问题

代码语言:javascript
复制
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=FedoraWorkstation --add-masquerade

参考文献:https://fedoramagazine.org/docker-and-fedora-32/

票数 2
EN

Stack Overflow用户

发布于 2020-12-03 10:14:44

在我的例子中,我也遇到了同样的问题,因为docker0接口缺少伪装iptables规则。

我从tcpdump中注意到,容器正试图使用自己的ip。

.872491 IP (tos 0x0,ttl 63,id 44842,偏移量0,标志DF,proto (6),长度60) 172.17.0.2.39146 > 147.75.69.225.80:旗标S,cksum 0x856e,seq 241251313,win 29200,options mss 1460,sackOK,TS val 67935451 ecr 0,nop,wscale 7,长度0

我在/etc/docker/daemon.json中添加了以下选项,最后容器到达了外部世界

代码语言:javascript
复制
{
     ...
     "ip-masq": true,
     ... 
}

确保deamon --iptables选项设置为true,否则将不会添加伪装规则。

不管怎样,看看

或者,可以创建一个具有伪装的自定义网络,并将其与容器相关联。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35824894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档