Docker镜像如何在本地构build,而不是在远程目标?

我们有一个Dockerfile,如下所示:

from ubuntu:trusty RUN apt-get update && apt-get -y upgrade RUN apt-get install -y build-essential g++ libblas-dev liblapack-dev gfortran python-dev python-pip RUN pip install --upgrade numpy RUN pip install --upgrade statsmodels RUN pip install --upgrade flask COPY . server WORKDIR server EXPOSE 5000 ENTRYPOINT python2 prediction_app.py 

在本地,这些步骤完成没有事件。 但是,在我们的远程目标上,这一步失败了:

 RUN pip install --upgrade statsmodels 

当pip试图删除一个非空的目录时:

 Found existing installation: six 1.5.2 Uninstalling six: Successfully uninstalled six Cleaning up... Exception: Traceback (most recent call last): [... snip many lines ...] onerror(os.rmdir, path, sys.exc_info()) File "/usr/lib/python2.7/shutil.py", line 254, in rmtree os.rmdir(path) OSError: [Errno 39] Directory not empty:... Storing debug log for failure in /root/.pip/pip.log 

两个问题:

  1. 这怎么可能,这在本地工作,远程失败? 他们是不是应该以同样的方式失败,或者是以相同的方式成功? 我试图理解我的心理模型有什么问题。

  2. 有没有办法看到失败日志? 它看起来像被转储到一个不完整的Docker镜像,我不知道该怎么做。

看来,这个问题是由于使用了docker覆盖存储后端。

我在这里提出了一个错误: https : //github.com/docker/docker/issues/12327