2016-10-19 26 views
0

我下載了官方泊塢窗httpd的容器,但默認情況下它在我的32770端口映射到其端口80。我想,每當我啓動容器,它監聽我的80端口 - > 80如何啓動Docker容器 - 其參數已更改?

有任何命令在碼頭啓動的行參數給或我可以硬編碼碼頭這個映射?

我試圖用「docker run」命令來運行它,但每次啓動它的新實例時,我都會丟失我對要使用的碼頭容器所做的更改。我如何保留端口映射更改?

+0

當您執行docker run時,您可以使用-p 80:80'標誌設置端口。 – Thilo

+0

你能否給我完整的命令行?因爲我是碼頭工人新手 – Farhan

+0

您現在使用的命令是什麼? – Thilo

回答

3

你想從容器發佈端口主機,爲Thilohttpd圖像已經暴露的端口80,所以你可以發佈它。

此命令映射端口80和在後臺運行Web服務器:「它的工作原理」

docker run -d -p 80:80 httpd 

現在你可以瀏覽到http://localhost,看到了頁。

docker run是一個快捷方式docker create + docker start,所以它總是從圖像創建一個新的容器。如果要對容器進行更改並保留它們,請使用commitDockerfile根據httpd(最好是Dockerfile)創建自己的圖像,因爲它更易於管理和自動化。然後,您將擁有一個自定義網站圖片,當您運行它時,它將始終保持不變。

+0

作爲對映像進行更改的替代方法,頻繁的使用模式是將配置和內容從外部卷(另一個容器或主機文件系統)掛載到容器中。這樣,你可以更新你的東西分開的httpd映像。哪種方法是合適的取決於您的需求和部署模型。 – Thilo

1

你應該根據httpd官方圖像創建自己的docker鏡像。然後暴露你想要映射的端口(EXPOSE 80)https://docs.docker.com/engine/reference/builder/#/expose它應該做你想做的。

它會給類似:

FROM httpd EXPOSE 80

編譯:搬運工建立-t測試。

運行:運行搬運工測試:)

+1

這仍然沒有做任何關於主機端口。事實上,現有的HTTPD容器可能已經這樣做了。 – Thilo