![](/img/trans.png)
[英]How to change permissions of a docker mounted volume on OSX to work with Nginx web server running Laravel 5.1?
[英]How to access web page served by nginx web server running in docker container
我們正在嘗試使用docker來運行nginx,但由於某種原因,我無法訪問在docker容器內運行的nginx Web服務器。
我們使用以下Dockerfile
啟動了Docker容器: https : //github.com/dwyl/learn-docker/blob/53cca71042482ca70e03033c66d969b475c61ac2/Dockerfile
(它是使用在端口8888上運行的nginx的基本問候世界)要運行我們使用的容器:
docker run -it ubuntu bash
我們使用docker inspect
命令確定了Container的IP地址:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' a9404c168b21
這是: 172.17.0.11
當我嘗試在瀏覽器http://172.17.0.11:8888/中訪問容器的IP地址和nginx端口時,我們得到ERR_CONNECTION_TIMED_OUT
或使用卷曲:
curl 172.17.0.11:8888
curl: (7) Failed to connect to 172.17.0.11 port 8888: Connection refused
為了解決這個問題,我們廣泛搜索,但懷疑我們可能會問“錯誤”的問題......
您不應該嘗試訪問容器的IP地址,您應該使用主機的IP地址。
您缺少的是主機端口到運行nginx服務器的容器端口的映射。
假設您要在主機上使用端口8888,您需要一個這樣的參數來映射端口:
docker run ... -p 8888:8888 ...
然后,您應該能夠通過http://<HOST_MACHINE_IP>:8888
訪問您的服務器
編輯 :如果你在Mac上運行,還有另一個問題。 要在Mac上使用Docker,通常使用boot2docker
但boot2docker
會添加另一層。 您需要確定boot2docker容器的IP地址,並使用它而不是localhost來訪問nginx。
$ boot2docker ip
The VM's Host only interface IP address is: <X.X.X.X>
$ wget http://<X.X.X.X>:8888
...
Connecting to <X.X.X.X>:8888... connected.
HTTP request sent, awaiting response... 200 OK
參考: https : //viget.com/extend/how-to-use-docker-on-os-x-the-missing-guide
編輯 :...或與docker-machine
相同的命令是docker-machine ip <machine-name>
,其中<machine-name>
可能是“默認”。
您可能需要檢查容器是否正在運行:
如果沒有活動的容器:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.