请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

docker生成镜像时无法安装flask

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘NewConnectionError(’<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7ffaec8ef730>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’)’: /simple/flask/

百度了网上的办法,在机器加了nameserver 8.8.8.8,并重启了docker,依然报错,但是在宿主机可以正常安装的,在镜像中就不能装,请求老师解答,我用的时阿里云主机,centos8 64位操作系统,初步判断是容器连不上网,但是尝试网上的解决办法无果

FROM python:3 # 引入python3镜像
LABEL maintainer="XXXXX” #写明dockerfile信息
RUN pip3 install flask #安装flask
COPY hello.py /app/ #把当期目录的hello.py 添加到/app/目录下
WORKDIR /app # 切换到app目录
EXPOSE 5000 # 向往暴露5000端口
CMD [“python3”,"hello.py”] #执行hello.py

图片描述

正在回答 回答被采纳积分+3

4回答

weixin_慕仙4431864 2020-10-12 09:51:37

我也遇到这个问题,service docker restart重启下

0 回复 有任何疑惑可以回复我~
  • 问题解决了么? 有点奇怪
    回复 有任何疑惑可以回复我~ 2020-10-13 22:51:20
麦兜搞IT 2020-07-16 04:05:22

那您再查一下防火墙的NAT规则?具体方法见https://docker-k8s-lab.readthedocs.io/en/latest/docker/bridged-network.html#nat 

0 回复 有任何疑惑可以回复我~
  • 提问者 悬崖蓝枫 #1
    [root@iZm5eg5ahlkal89kmgeqpcZ ~]# sudo iptables --list -t nat
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination         
    DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination         
    MASQUERADE  all  --  172.17.0.0/16        anywhere            
    MASQUERADE  tcp  --  172.17.0.2           172.17.0.2           tcp dpt:http
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    DOCKER     all  --  anywhere            !127.0.0.0/8          ADDRTYPE match dst-type LOCAL
    Chain DOCKER (2 references)
    target     prot opt source               destination         
    RETURN     all  --  anywhere             anywhere            
    DNAT       tcp  --  anywhere             anywhere             tcp dpt:radan-http to:172.17.0.2:80
    回复 有任何疑惑可以回复我~ 2020-08-04 11:33:26
  • 提问者 悬崖蓝枫 #2
    [root@iZm5eg5ahlkal89kmgeqpcZ ~]# ifconfig
    docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
            inet6 fe80::42:c4ff:fe53:ad9e  prefixlen 64  scopeid 0x20<link>
            ether 02:42:c4:53:ad:9e  txqueuelen 0  (Ethernet)
            RX packets 1083  bytes 56934 (55.5 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1242  bytes 104725 (102.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 172.31.171.191  netmask 255.255.240.0  broadcast 172.31.175.255
            inet6 fe80::216:3eff:fe04:310f  prefixlen 64  scopeid 0x20<link>
            ether 00:16:3e:04:31:0f  txqueuelen 1000  (Ethernet)
            RX packets 8810873  bytes 4019267453 (3.7 GiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 6809206  bytes 5006028415 (4.6 GiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    回复 有任何疑惑可以回复我~ 2020-08-04 11:33:49
麦兜搞IT 2020-07-04 05:13:21

您如果是使用一些image直接创建container,比如centos,进到container内部,在里面能访问外网么?比如ping baidu之类的

0 回复 有任何疑惑可以回复我~
  • 提问者 悬崖蓝枫 #1
    ping不通,因为我进入到容器内部执行yum安装东西也报超时,但是我使用docker run -it --net host 053ef79664b4 /bin/bash   运行容器后,在容器里执行pip3 是可以下载的,就是容器内连不上网
    回复 有任何疑惑可以回复我~ 2020-07-08 11:02:18
  • 麦兜搞IT 回复 提问者 悬崖蓝枫 #2
    嗯,也就是你的host网络是可以的,bridge有问题,如果你
    docker run -it centos /bin/bash
    然后在里面ping下docker0网关,是通的么?如果网关通了,那八成是docker0后面的NAT有问题
    回复 有任何疑惑可以回复我~ 2020-07-08 21:36:55
  • 提问者 悬崖蓝枫 回复 麦兜搞IT #3
    试了一下是可以ping通的,截图放在提问里了
    回复 有任何疑惑可以回复我~ 2020-07-13 17:46:47
麦兜搞IT 2020-07-04 05:12:24

这个应该是网络的问题,目前我也没有办法帮您排错,因为我手上没有您这样的环境。初步猜测可能是有什么proxy的设置,导致的问题。


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信