gpt4 book ai didi

docker - 由Docker for Windows Windows容器本地托管的网站无法通过localhost访问

转载 作者:行者123 更新时间:2023-12-02 19:35:00 25 4
gpt4 key购买 nike

我正在尝试为Windows容器设置Docker,以使用lite-server和Sphinx构建并托管一个简单的静态网站。我首先运行容器。

$ docker run -it -p 8080:8080 -v "$(pwd):C:\src" website

然后启动lite-server。
$ yarn serve

该网站可通过容器的IP地址访问(例如 http://172.26.141.28:8080),因此我知道lite-server正在提供内容,但我无法使用 http://localhost:8080访问内容。

如何通过localhost:8080公开网站?

我的Dockerfile如下
FROM microsoft/windowsservercore

ENV chocolateyUseWindowsCompression false
RUN powershell -Command \
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));

RUN choco install nodejs -y
RUN choco install yarn -y
RUN choco install python3 -y
RUN pip install sphinx
RUN pip install sphinx_rtd_theme

# https://github.com/nodejs/node/issues/8897#issuecomment-319010735
# Workaround for error An unexpected error occurred: "ENOENT: no such file or directory, lstat 'C:\\ContainerMappedDirectories'".
RUN mkdir C:\src
RUN powershell Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices' -Name 'S:' -Value '\??\C:\src' -Type String
WORKDIR 'S:\\'

EXPOSE 8080
CMD ["powershell"]

精简版服务器启动与
"scripts": {
"serve": "light-server -s ./build/html -p 8080"
},

软件:
  • Docker 17.06.2-ce版本,构建cec0b72
  • Windows 10(主机)
  • Windowsservercore(容器)
  • 最佳答案

    我不知道是否有更新,但是截至一年前,这是预期的行为:

    containers and their ports are only accessible via the NATed IP address.



    参见: https://github.com/docker/for-win/issues/204#issuecomment-258638899

    关于docker - 由Docker for Windows Windows容器本地托管的网站无法通过localhost访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46576521/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com