从Docker在Apache Server上运行静态站点

毫无疑问,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 nhooo Docker tutorials
</body>
</html>

Docker文件

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

我们将容器内的工作目录设置为/ usr / local / apache2 / htdocs /,然后将包含html文件的mysite文件夹复制到容器中的工作目录。

在完成index.html文件和dockerfile之后,我们将设置为在dockerfile的帮助下使用docker build命令构建docker映像。要构建docker镜像,我们使用以下命令-

sudo docker build −t static−image .

上面的命令生成一个称为static-image的映像。现在我们已经构建了映像,我们可以使用docker run命令启动一个容器。为了使Docker容器能够在本地计算机上的浏览器上为我们的网站提供服务,我们需要连接Docker容器的端口和本地系统。我们可以通过在docker run命令中使用-p标志来实现。

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

上面的运行命令将我们的容器的端口号80与本地计算机相互连接。使用--name选项,我们为容器提供了一个名为static-image-1的名称。执行此命令后,我们将运行docker容器static-image-1,并准备在地址http:// localhost:80上服务我们的静态网站。

现在,您可以启动浏览器并浏览链接http:// localhost:80。您将在此处看到内容“ Welcome to nhooo Docker教程”。这意味着该站点正在apache服务器上提供服务。

总之,您可以使用Docker容器来服务您的静态网站。在网站html中进行更改时,您还将看到更改也反映在网站显示中。如果在该容器上还提供其他应用程序,则还可以指定其他端口号。