2017-08-19 34 views
2

我有一个构建的docker镜像。我想在本地主机上运行它并在本地机器上查看该项目。当我运行图像时,我在泊坞窗ps中看到它。当我去localhost的时候,我什么也得不到。我不知道这是否是我试图运行或权限的端口,或者类似的东西...在本地主机上运行docker项目,但没有任何东西会出现

这里是我运行以下命令:

λ docker run -p 5050:80 opentab 

这里的形象是后内置:

Successfully built 7e995fbdf2ea 
Successfully tagged opentab:latest 
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories. 

这里是泊坞窗文件:

FROM python:3 
WORKDIR /usr/src/app 
COPY requirements.txt ./ 

EXPOSE 80 

RUN pip install --no-cache-dir -r requirements.txt 
COPY . . 

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

,我不得不删除从requir以下对此语句文件,因为它们导致错误:

蟒蛇 sqlite的 TK ZX

回答

1

两件事情:

1)manage.py runserver将绑定默认情况下只为localhost。此本地主机位于容器内部,而不在您的计算机上。因此,要在应用程序绑定到这样所有接口:

python manage.py runserver 0.0.0.0 

2)manage.py runserver将默认绑定到端口8000。所以,有两个选择。一,你可以让manage.py runserver命令绑定到端口80,就像这样:

python manage.py runserver 0.0.0.0.0:80 

或者,你会改变你的dockerfile,用EXPOSE 8000更换EXPOSE 80,并改变你的泊坞窗命令docker run -p 5050:8000 opentab

+0

如果我想要使用第一个选项,你把'python manage.py runserver 0.0.0.0:80',我将不得不在每个项目之间放置parens,如下所示:'CMD [“python”,“manage.py”, “runserver”,“0.0.0.0:80”]'或没有父母 –

+0

我试过两种方式让它运行,但由于某种原因它仍然没有运行..这就是我的docker文件看起来像'RUN PIP安装-r requirements.txt COPY 。 。 CMD [“python”,“manage.py”,“runserver”,“0.0.0.0:8000”]'。我运行下面的命令来运行项目后,我建立项目..'码头运行-p 8000:8000 opentab'。我也尝试运行它没有端口,我得到一个错误,它不能连接... @MrName –

+0

对不起,延迟。是的,这一切看起来是正确的。您是否在端口文件中公开8000端口? – MrName

相关问题