从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的帮助下使用dockerbuild命令构建docker映像。要构建docker镜像,我们使用以下命令-
sudo docker build −t static−image .
上面的命令生成一个称为static-image的映像。现在我们已经构建了映像,我们可以使用dockerrun命令启动一个容器。为了使Docker容器能够在本地计算机上的浏览器上为我们的网站提供服务,我们需要连接Docker容器的端口和本地系统。我们可以通过在dockerrun命令中使用-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。您将在此处看到内容“WelcometonhoooDocker教程”。这意味着该站点正在apache服务器上提供服务。
总之,您可以使用Docker容器来服务您的静态网站。在网站html中进行更改时,您还将看到更改也反映在网站显示中。如果在该容器上还提供其他应用程序,则还可以指定其他端口号。