使用Docker和django暴露端口8000

puruo6ea  于 2023-01-04  发布在  Docker
关注(0)|答案(3)|浏览(150)

我正在尝试复制我在这里找到的django imagehttps://hub.docker.com/r/library/django
好吧,在这一点上,图像工作良好,但我试图从这个生成一个容器。
使用以下命令:

$ docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                      PORTS               NAMES
3c3e94ff32e7        django:latest          "python3"                18 hours ago        Exited (137) 17 hours ago                       django

$ docker images -a
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
django              latest              eb40dcf64078        9 months ago        436MB

使用:

$ docker commit django fmf
$ docker run -p 8000:8000 -td fmf /bin/bash

现在,我有了容器fmf,并使用以下代码生成了一个新的django项目:

# django-admin startproject test
# python manage.py runserver 8000

但是,这个端口没有打开(或者至少我在那里看不到任何响应)。我不确定端口是否没有打开并且使用了桥,但是我没有从这个容器得到响应。
我做错了什么?

b4lqfgs4

b4lqfgs41#

最后,我在这个帖子里找到了解决办法:https://github.com/docker/for-win/issues/197
基本上,要运行服务器,您应该使用以下命令执行它:

python manage.py runserver 0.0.0.0:8000

在您Docker和本地计算机中,您可以看到它:

localhost:8000
gmxoilav

gmxoilav2#

尝试把这个放在你的Dockerfile:

EXPOSE 8000

或者,你可以试着看看你的docker中发生了什么。运行下面的命令来打开一个你的docker的bash:

docker exec -it django /bin/bash

然后,查看端口8000上是否有正在运行的进程。

hc2pp10m

hc2pp10m3#

您还可以使用此命令公开端口。

python .\manage.py runserver IP:PORT

python .\manage.py runserver 127.0.0.1:PORT 
python .\manage.py runserver localhost:PORT

python .\manage.py runserver Public_IP:PORT
python .\manage.py runserver Domain_Name:PORT

注意:请确保将您的主机名或站点地址添加到www.example.com中的ALLOWED_HOSTS = [”127.0.0.1“,“localhost”,“Domain_Name”,“Public_IP”settings.py]

相关问题