Docker 编写入门指南

Docker Compose Getting Started guide

我正在遵循 Docker Compose 入门指南 (https://docs.docker.com/compose/gettingstarted/),并且我完全遵循了该指南。我的 Dockerfiledocker-compose.yml 和目录中的所有其他文件与它们在指南中的显示完全相同。

但是,当我尝试 运行 docker-compose up 时,Web 服务立即退出,退出代码为 2,并显示一条错误消息:

web_1    | python: can't open file 'app.py': [Errno 2] No such file or directory

如果 运行 单独构建和 运行 图像工作正常,即

docker build -t composetestweb .
docker run -d -p 5000:5000 composetestweb

网站出现错误,但它确实有响应。

检查组合容器似乎显示了正确的信息:命令、安装的文件夹和工作目录都是正确的。

我在 Windows 7 上使用 Docker 机器和 VirtualBox 4.3.38。作为记录,到目前为止,我还没有遇到任何其他 Docker 指南的问题。

此错误的最常见原因是使用 docker-machine$HOME 目录的项目输出。 docker-machine 只会为主目录创建一个 Virtualbox 共享文件夹,因此如果您的项目在该目录之外,docker-compose 中使用的 volumes: 将不起作用。

您有以下选择:

  • 将项目移动到您的主目录下的目录
  • 将另一个共享文件夹添加到 virtualbox 作为您存储项目的文件夹
  • 不要使用 volumes:,将其从 docker-compose
  • 中移除