我有一个构建的 docker 镜像。我想在本地主机上运行它并在我的本地机器上查看项目。当我运行图像时,我在 docker ps 中看到它。当我去本地主机时,我什么也得不到。我不确定它是我要运行的端口还是权限,或者类似的东西......
这是我正在运行的命令:
λ 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.
这是 docker 文件:
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"]
我不得不从需求文件中删除以下内容,因为它们会导致错误:
python sqlite tk zx
请您参考如下方法:
两件事:
1) manage.py runserver 默认只会绑定(bind)到本地主机。此本地主机在容器内,而不是在您的计算机上。因此,您希望将应用程序绑定(bind)到所有接口(interface),如下所示:
python manage.py runserver 0.0.0.0
2) manage.py runserver 默认绑定(bind)到端口 8000。所以,两个选择。第一,您可以将 manage.py runserver 绑定(bind)到端口 80,如下所示:
python manage.py runserver 0.0.0.0.0:80
或者,您可以更改 dockerfile,将 EXPOSE 80 替换为 EXPOSE 8000,并将 docker 命令更改为 docker run -p 5050:8000 opentab
