【问题标题】:How to properly start nginx in Docker如何在 Docker 中正确启动 nginx
【发布时间】:2017-07-05 12:08:20
【问题描述】:

我希望 Docker 容器中的 nginx 托管一个简单的静态 hello world html 网站。我想简单地用“docker run imagename”开始它。为此,我将运行参数添加到 Dockerfile。我想这样做的原因是我想在下一步中将应用程序托管在 Cloud Foundry 上。不幸的是,这样做时我收到以下错误。

Dockerfile

FROM nginx:alpine
COPY . /usr/share/nginx/html
EXPOSE 5000
CMD ["nginx -d -p 5000:5000"]

错误

Error starting userland proxy: Bind for 0.0.0.0:5000: unexpected error Permission denied.

【问题讨论】:

    标签: nginx docker port cloud-foundry


    【解决方案1】:

    来自:: https://docs.docker.com/engine/reference/builder/#expose

    EXPOSE 不会使主机可以访问容器的端口。为此,您必须使用 -p 标志发布一系列端口或使用 -P 标志发布所有公开的端口。您可以公开一个端口号并在另一个端口号下对外发布

    CMD ["nginx -d -p 5000:5000"] 你添加你的 dockerfile 来自 nginx:alpine 它已经启动了 nginx。 从你的 dockerfile 构建之后

    你应该用这个

    docker run -d -p 5000:5000 <your_image> 
    

    编辑: 如果你想使用 docker 端口 80 -> 机器端口 5000

    docker run -d -p 5000:80 <your_image>
    

    【讨论】:

    • 谢谢。问题是我机器上的另一个应用程序使用了端口 5000。
    猜你喜欢
    • 2020-01-08
    • 2021-02-18
    • 2020-04-23
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多