2016-01-18 128 views
0

我已經用nginx websever構建了一個Ubuntu容器。泊塢窗文件看起來如下:Ubuntu nginx容器403禁止

FROM ubuntu:14.04 
MAINTAINER James Turnbull "[email protected]" 
ENV REFRESHED_AT 2014-06-01 
RUN apt-get -yqq update && apt-get -yqq install nginx 
RUN mkdir -p /var/www/html/website 
ADD nginx/global.conf /etc/nginx/conf.d/ 
ADD nginx/nginx.conf /etc/nginx/nginx.conf 
EXPOSE 80 

文件結構看起來如下:

sudo docker run -d -p 80 --name website \-v $PWD\website:/var/www/html/website \kostonstyle/nginx nginx 

nginx的服務器工作正常,但:

[email protected]:~/sample$ ls 
Dockerfile nginx website 

用下面的語句運行容器後當我要求一個網頁時,我只有

curl 0.0.0.0:32769 
<html> 
    <head><title>403 Forbidden</title></head> 
    <body bgcolor="white"> 
    <center><h1>403 Forbidden</h1></center> 
    <hr><center>nginx/1.4.6 (Ubuntu)</center> 
    </body> 
</html> 

我在做什麼錯?

+0

檢查你的文件夾'網站'在容器中的權限。並將其命名爲「www-data」 –

+0

不知道你爲什麼捲曲端口32769? –

+0

與您的問題沒有關係,但您構建的Dockerfile是文檔的一部分,但基本僅用於說明目的。在這個例子中有很多東西沒有正確設置(例如,正確*碼頭的日誌*)。最好使用[官方NGINX](https://hub.docker.com/_/nginx/)圖像作爲基礎圖像,因爲這些圖像是爲Docker積極維護,小型化和正確設置的(例如https:/ /github.com/nginxinc/docker-nginx/blob/a8b6da8425c4a41a5dedb1fb52e429232a55ad41/Dockerfile#L14-L18) – thaJeztah

回答

4

403錯誤可能是由於提供了空目錄而導致目錄列表已禁用(默認設置)。有關如何解決此問題的一些提示,請參閱resolving 403 errors

如果網站目錄中不包含的index.html,添加此文件

如果網站目錄包含index.html,它可能是卷未安裝正確。如果您使用boot2docker,請確保您的網站目錄是c:\users(Windows)或/Users(OS X)目錄下,因爲只有目錄是由泊塢窗(默認)

0

至於thaJeztah的附加註釋訪問回答,請注意,Windows上的映射區分大小寫,因此如果您想映射到'c:\ users'目錄下的'Sites'文件夾,那麼您需要指定右邊框的映射:

docker run --name website -p 80 -d -v /c/Users/username/Sites:/var/www/html/website nginx 

(我會發表評論作爲thaJeztah的回答,但我還沒有足夠的代表!)