Python Django-through-Docker错误:该IP地址可以';不能分配给

Python Django-through-Docker错误:该IP地址可以';不能分配给,python,django,docker,server,ip,Python,Django,Docker,Server,Ip,我正在Ubuntu 16.04虚拟机上工作,并试图通过Docker容器运行我的Django应用程序 我成功地验证了我的web是否正常工作。如果我只是在我的机器上运行命令,它就会运行。 但是,当我用我的应用程序构建图像并运行容器时,它不起作用。 我的Dockerfile在末尾有这个CMD CMD ["python", "manage.py", "runserver", "my_VM_IP:8000]" 这给了我一个错误 Performing system checks... System ch

我正在Ubuntu 16.04虚拟机上工作,并试图通过Docker容器运行我的Django应用程序

我成功地验证了我的web是否正常工作。如果我只是在我的机器上运行命令,它就会运行。 但是,当我用我的应用程序构建图像并运行容器时,它不起作用。 我的Dockerfile在末尾有这个CMD

CMD ["python", "manage.py", "runserver", "my_VM_IP:8000]"
这给了我一个错误

Performing system checks...

System check identified no issues (0 silenced).
June 21, 2018 - 20:50:44
Django version 1.11.13, using settings 'datahttptools.settings'
Starting development server at http://myVMip:8000/
Quit the server with CONTROL-C.
Error: That IP address can't be assigned to.

我通过谷歌搜索尝试了所有可能的解决方案,但我没有找到答案。

根据Django文档,地址默认为127.0.0.1(环回设备),只能在机器上访问。在这种情况下,Django服务器只能在容器本身中访问。我猜您需要可以从正常主机系统访问的服务,因此您应该将命令更改为:

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
这会将服务器绑定到端口8000处具有IPv4的所有网络接口。为了绑定到IPv6,必须:

CMD ["python", "manage.py", "runserver", "[::]:8000"]