如何在Docker中正确启动nginx

我想要一个Docker容器中的nginx来托pipe一个简单的静态hello世界html网站。 我只想用“docker run imagename”启动它。 为了做到这一点,我将运行参数添加到Dockerfile。 我想这样做的原因是我想在下一步在Cloud Foundry上托pipe应用程序。 不幸的是,当我这样做时,会出现以下错误。

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. 

从:: 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>