2015-02-09 168 views
8

創建一個Apache Web服務器作爲Docker容器,但想在本地主機上以windows os瀏覽器訪問它。Boot2Docker - 作爲本地主機訪問網絡服務器

我可以通過boot2docker專用ip地址192.168.59.103訪問web服務器,但是想以localhost身份訪問web服務器,例如127.0.0.1。

以下是我的碼頭工人集裝箱設置

在Oracle VM上運行Boot2docker 暴露的端口: 「揭發80 443」,在泊塢窗文件

命令用來創建多克爾文件:

docker run --net=host --name=webserver1 -v /home/data:/data/www/www.samplewebserber.com -v `password`:/scripts -d folder/serverfolder /scripts/run.sh 
+0

可能重複[泊塢窗,不能達到從本地主機 「軌服務器」 發展:利用搬運工標誌3000 -p 3000:3000(http://stackoverflow.com/questions/23422540/docker -cant-reach-rails-server-development-from-localhost3000-using-docker) – 2015-02-09 05:31:47

+0

命令用戶創建dockerfile或運行容器? – vmonteco 2015-03-26 13:50:35

回答

5

如果你想訪問localhost到端口80和443你需要執行兩個動作:

  1. 首先,在創建容器時,必須專門指定端口映射。如果使用-P選項運行docker run選項,dockerfile的EXPOSE中設置的端口將暴露給Boot2Docker環境中的隨機端口。如果你想專門映射它,你必須運行:

    docker run \ 
        --net=host \ 
        --name=webserver1 \ 
        -v /home/data:/data/www/www.samplewebserber.com \ 
        -v `password`:/scripts \ 
        -d -p 80:80 -p 443:443 \ 
        folder/serverfolder \ 
        /scripts/run.sh 
    
  2. 而且爲了Boot2Docker端口映射到你的主機環境,喬賴能鏈接提示,則必須使用SSH隧道做了端口轉發:

    boot2docker ssh -L 80:localhost:80

    boot2docker ssh -L 443:localhost:443

,如果你願意,你可以換到端口映射。

15

boot2docker實際上是在你的Mac OS上用VirtualBox創建了一個vm的linux內核,192.168.59.103是該vm的ip。

所以你需要設置端口轉發該VM

請注意,在Mac OS中,80端口需要很高的權限,所以我用8080相反在這個例子。

enter image description here

+0

它適合我,謝謝! – Biao 2015-03-24 11:06:02

相關問題