我正在使用Ubuntu 16.04 VM,并尝试通过Docker容器运行Django应用。
我成功地验证了我的网站正在运行。如果我只是在机器上命令,它就会运行。 但是,当我使用我的应用构建映像并运行容器时,它不起作用。 我的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.
我正在通过谷歌搜索尝试所有可能的解决方案,但是我无法弄清楚。
答案 0 :(得分:0)
根据https://docs.djangoproject.com/en/2.0/ref/django-admin/#runserver上的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"]