2017-07-05 2 views
0

Je veux nginx dans un conteneur Docker pour héberger un site Web html hello static simple. Je veux simplement commencer avec "docker run imagename". Pour ce faire j'ai ajouté les paramètres d'exécution au Dockerfile. La raison pour laquelle je veux faire cela est que je voudrais héberger l'application sur Cloud Foundry dans une prochaine étape. Malheureusement, je reçois l'erreur suivante en le faisant comme ça.Comment démarrer correctement nginx dans Docker

Dockerfile

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

Erreur

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

Répondre

1

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

EXPOSER ne rend pas les ports du conteneur accessible à l'hôte. Pour ce faire, vous devez utiliser l'indicateur -p pour publier une plage de ports ou l'indicateur -P pour publier tous les ports exposés. Vous pouvez exposer un numéro de port et de le publier à l'extérieur sous un autre numéro

CMD [ "nginx -d -p 5000: 5000"] Vous ajoutez votre dockerfile DE nginx: alpine son commence déjà nginx. après la construction de votre dockerfile

vous devez utiliser sur

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

Edit: Si vous souhaitez utiliser le port docker 80 -> Port machine à 5000

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

Merci. Le problème était que le port 5000 était utilisé par une autre application sur ma machine. – user3080315