在Windows系統下安裝docker並嘗試在其中運行Nginx服務,在映射完畢之後在主機的瀏覽器中,打開localhost:port無法訪問對應的服務。
問題出現的原因:
因為docker是運行在Linux上的,在Windows中運行docker,實際上還是在Windows下先安裝了一個Linux環境,然後在這個系統中運行的docker。也就是說,服務中使用的localhost指的是這個Linux環境的地址,而不是我們的宿主環境Windows。
解決的辦法:
通過命令:
docker-machine ip default
# 其中,default 是docker-machine的name,可以通過docker-machine -ls 查看
找到這個Linux的ip地址,一般情況下這個地址是192.168.99.100,然後在Windows的瀏覽器中,輸入這個地址,加上服務的埠即可啟用了。
docker run --name nginx-test -p 8080:80 -d nginx
比如,首先運行一個docker 容器:
docker run --name nginx-test -p 8080:80 -d nginx
查看容器的ip,創建的機器名稱為test:
docker-machine ip test
最後在windows瀏覽器中測試結果:
http://192.168.99.101:8080