Docker build 无法执行 Dockerfile 中的 apt-get update - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yakumo17
V2EX    问与答

Docker build 无法执行 Dockerfile 中的 apt-get update

  •  
  •   yakumo17 2017-03-01 09:59:56 +08:00 10691 次点击
    这是一个创建于 3148 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文档地址 https://docs.docker.com/engine/getstarted/step_four/

    按照文档步骤来的,执行该命令时报错。

    试了在 Dockerfile 中加入 apt-get clean 和 sudo rm -vf /var/lib/apt/lists/*,只能减少几条 Get 报错,不能完全解决问题。

    我猜测大概是 Ubuntu 的源的问题,不知道如何改 image 的源。

    Docker 的设置中已添加过了 Daocloud 的加速器。

    Dockerfile 文件

    FROM docker/whalesay:latest RUN apt-get -y update && apt-get install -y fortunes CMD /usr/games/fortune -a | cowsay 

    命令执行过程

    $ docker build -t docker-whale . Sending build context to Docker daemon 2.048 kB Step 1/3 : FROM docker/whalesay:latest ---> 6b362a9f73eb Step 2/3 : RUN apt-get -y update && apt-get install -y fortunes ---> Running in c4bed37eb3f2 Ign http://archive.ubuntu.com trusty InRelease Get:1 http://archive.ubuntu.com trusty-updates InRelease [65.9 kB] Get:2 http://archive.ubuntu.com trusty-security InRelease [65.9 kB] Hit http://archive.ubuntu.com trusty Release.gpg Get:3 http://archive.ubuntu.com trusty-updates/main Sources [1103 kB] Hit http://archive.ubuntu.com trusty Release Get:4 http://archive.ubuntu.com trusty-updates/universe Sources [220 kB] Get:5 http://archive.ubuntu.com trusty-updates/main amd64 Packages [1197 kB] Get:6 http://archive.ubuntu.com trusty-updates/restricted Sources [1103 kB] Get:7 http://archive.ubuntu.com trusty-updates/restricted amd64 Packages [1197 kB] Get:8 http://archive.ubuntu.com trusty-security/restricted Sources [1103 kB] Get:9 http://archive.ubuntu.com trusty-security/restricted amd64 Packages [17.0 kB] Get:10 http://archive.ubuntu.com trusty-updates/universe amd64 Packages [1197 kB] Get:11 http://archive.ubuntu.com trusty-security/main Sources [2815 B] Get:12 http://archive.ubuntu.com trusty-security/universe Sources [2815 B] Get:13 http://archive.ubuntu.com trusty-security/main amd64 Packages [1197 kB] Hit http://archive.ubuntu.com trusty/restricted Sources Get:14 http://archive.ubuntu.com trusty-security/universe amd64 Packages [1197 kB] Get:15 http://archive.ubuntu.com trusty/universe Sources [220 kB] Get:16 http://archive.ubuntu.com trusty/main Sources [2815 B] Get:17 http://archive.ubuntu.com trusty/main amd64 Packages [14.8 kB] Hit http://archive.ubuntu.com trusty/restricted amd64 Packages Get:18 http://archive.ubuntu.com trusty/universe amd64 Packages [17.0 kB] Fetched 9920 kB in 17s (580 kB/s) W: Size of file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty_main_source_Sources.gz is not what the server reported 2815 1334581 W: Size of file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty_universe_source_Sources.gz is not what the server reported 220105 7925687 W: Size of file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty_main_binary-amd64_Packages.gz is not what the server reported 14793 1743009 W: Size of file /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_trusty_universe_binary-amd64_Packages.gz is not what the server reported 17048 7588885 W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/restricted/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/universe/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/binary-amd64/Packages Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/restricted/binary-amd64/Packages Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/universe/binary-amd64/Packages Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/main/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/restricted/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/universe/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/main/binary-amd64/Packages Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/universe/binary-amd64/Packages Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/main/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/universe/source/Sources Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/main/binary-amd64/Packages Hash Sum mismatch W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/universe/binary-amd64/Packages Hash Sum mismatch E: Some index files failed to download. They have been ignored, or old ones used instead. The command '/bin/sh -c apt-get -y update && apt-get install -y fortunes' returned a non-zero code: 100 
    8 条回复    2017-03-01 11:26:33 +08:00
    Eleutherios
        1
    Eleutherios  
       2017-03-01 10:13:49 +08:00
    ……

    建议你好好看下 log ,然后去 Google 搜索: “ Hash Sum mismatch ” “ apt-get ”
    edsion996
        2
    edsion996  
       2017-03-01 10:28:45 +08:00
    要翻墙吧,或者 DockerHub 镜像加速
    hxsf
        3
    hxsf  
       2017-03-01 10:40:11 +08:00
    FROM docker/whalesay:latest
    RUN 换国内源
    RUN apt-get -y update && apt-get install -y fortunes
    CMD /usr/games/fortune -a | cowsay
    yakumo17
        4
    yakumo17  
    OP
       2017-03-01 11:15:24 +08:00
    @Eleutherios 搜过的来着,顺着 stackoverflow 一条一条试,在 apt-get update 前加 apt-get clean 等,试过没有效果。在 /etc/apt/sources.list 中加入 deb 命令那些,不知道怎么找到镜像的文件位置,自己的系统是没有这个 /etc/apt/的目录
    yakumo17
        5
    yakumo17  
    OP
       2017-03-01 11:17:25 +08:00
    @hxsf 找到一条这个命令
    RUN sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu\//http:\/\/mirrors\.163\.com\/ubuntu\//g' /etc/apt/sources.list
    解决了 3q
    还不太懂这个语句
    yakumo17
        6
    yakumo17  
    OP
       2017-03-01 11:18:32 +08:00
    @zjb861107 翻墙一直开着的,镜像加速用了,对下载 hub.docker.com 的有用,这里依然不行
    wahyd4
        7
    wahyd4  
       2017-03-01 11:22:01 +08:00
    解决 apt-get update 慢的问题,你可以试试这个: RUN sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    Eleutherios
        8
    Eleutherios  
       2017-03-01 11:26:33 +08:00   1
    首先,你需要知道 apt-get update 在干什么

    其次,你需要知道 "Hash Sum mismatch" 意味着什么:
    archive.ubuntu.com 更新 package 信息失败(被墙干扰) => 所以,你需要使用国内的 repo

    然后,你需要知道 sed -i '******' /path/to/file 命令在干什么:
    https://archive.ubuntu.com/ 替换为 http://mirrors.163.com/

    另外,你在主机开翻墙,很可能对 Docker 是无效的。
    如果你要让 Docker 翻墙,你可以 Google socks5 docker
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5556 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:56 PVG 16:56 LAX 01:56 JFK 04:56
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86