在 Apache 伺服器上從 Docker 執行靜態網站


毫無疑問,Docker 容器現在正被廣泛用於開發生命週期的各個方面,從構建、分發、測試到產品的部署。它允許開發人員處理專案的不同部分,與其他參與同一專案的開發人員協作,有助於專案的版本管理,在某些情況下,還可以透過在其自己的伺服器上託管來測試產品。

假設您已在 Docker 容器內構建了一個靜態網站,現在您想透過在瀏覽器中執行該網站來測試它。Docker 允許您在容器內建立 Apache 伺服器並在本地託管網站,並透過埠連線它,以便您可以在本地機器上顯示它。

在本文中,我們將瞭解如何在 Docker 容器內的 Apache 伺服器上執行靜態網站並在本地機器上訪問它。首先,我們需要建立一個 Dockerfile,以便它可以構建一個已安裝 Apache 伺服器的環境。我們還需要一個簡單的靜態網站,我們將在該伺服器上執行它。靜態網站是指不動態或即時呈現資料和資訊的網站,主要由 html 和 css 組成,不包含 javascript。

讓我們建立一個 Dockerfile 幷包含一些命令來拉取一個包含預安裝 Apache 伺服器的基本映象。Httpd 是主要的 http 伺服器,其中包含名為 Apache 的 Web 伺服器應用程式。

我們使用 FROM 指令來拉取該基本映象。然後,我們建立一個名為 mysite 的目錄,其中包含一個名為 index.html 的 html 檔案,該檔案將包含我們的靜態網站的 html 內容。因此,目錄結構將是主資料夾,其中我們將有我們的 Dockerfile 和一個名為 mysite 的資料夾,在該資料夾中將是我們的 index.html 檔案。

Index.html

<html>
<body>
Welcome to TutorialsPoint Docker tutorials
</body>
</html>

Dockerfile

FROM httpd:2.4
WORKDIR /usr/local/apache2/htdocs/
COPY ./mysite/

我們將容器內的工作目錄設定為 /usr/local/apache2/htdocs/,然後我們將包含 html 檔案的 mysite 資料夾複製到容器中的工作目錄。

完成 index.html 檔案和 Dockerfile 後,我們就可以使用 docker build 命令和我們的 Dockerfile 來構建我們的 Docker 映象了。要構建 Docker 映象,我們使用以下命令:

sudo docker build −t static−image .

以上命令構建了一個名為 static-image 的映象。現在我們已經構建了映象,我們可以使用 docker run 命令啟動一個容器。為了使 Docker 容器能夠在我們的本地機器的瀏覽器中提供我們的網站,我們需要連線 Docker 容器和本地系統的埠。我們可以使用 -p 標誌和我們的 docker run 命令來實現這一點。

sudo docker run −p 80:80 −−name static−image−1 static−image

以上執行命令將容器和本地機器的埠號 80 相互連線。使用 --name 選項,我們為容器提供了一個名為 static-image-1 的名稱。執行此命令後,我們的 Docker 容器 static-image-1 正在執行,並準備在地址 https://:80 上提供我們的靜態網站。

您現在可以啟動瀏覽器並瀏覽連結 https://:80。您將看到“歡迎使用 TutorialsPoint Docker 教程”的內容顯示在那裡。這意味著該網站正在 Apache 伺服器上提供。

總之,您可以使用 Docker 容器來提供您的靜態網站。當您更改網站 html 時,您會看到更改也會反映在網站顯示中。如果您在該容器上提供了一些其他應用程式,您還可以指定不同的埠號。

更新於: 2020年10月27日

2K+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告