为什么在安装官方的Django docker镜像之后我不能`docker exec`?

我按照说明设置了正式的Django docker镜像,在这里find。 首先,我通过跑步为我的项目创build了一个脚手架

$ docker run -it --rm --user "$(id -u):$(id -g)" -v "$PWD":/usr/src/app -w /usr/src/app django django-admin.py startproject mysite2 

然后,我按照创buildDockerfile的指示操作,构build完图像之后,我运行了Docker镜像

 docker run --name some-django-app -p 8000:8000 -d my-django-app 

它的工作!

所以就像默认的网页build议,我决定创build我的第一个应用程序

 docker exec <docker container ID> bash -c "python /folder/to/mysite2/manage.py startapp polls" 

但后来我收到了错误信息

 Traceback (most recent call last): File "/folder/to/mysite2/manage.py", line 8, in <module> from django.core.management import execute_from_command_line ImportError: No module named django.core.management 

谷歌search后,这表明Django没有安装。 但我很困惑; 我以为这个docker图像应该与Django一起发货。 我知道django自从开始页面出现以前曾经使用过一次。

我认为docker映像的重点是我不必在主系统上安装django。 docker exec应该如何在这种情况下使用?


Vagrantfile

 config.vm.provision "docker" do |d| d.pull_images "django" end 

Dockerfile

 FROM django:onbuild 

你的工作目录可能不是/folder/to/mysite/所以django找不到要导入的设置文件。

在你的dockerfile中,设置WORKDIR=/folder/to/mysite/ ,然后简化你的运行命令到:

 docker exec -t <docker container ID> bash -c "python ./manage.py startapp polls"