一、简介
httpd 是 Apache超文本传输协议(HTTP)服务器的主程序,是一个独立运行的后台进程,专门负责处理 HTTP 请求。它通过建立子进程或线程的池来高效管理请求,确保服务器能够迅速响应客户端的需求。httpd 因其高效率、易于搭建、高稳定性以及可靠性而广受欢迎,可安装在几乎所有的操作系统和服务器上,适用于各种 Web 应用场景。
今天介绍两种方式,目录挂载和镜像制作,这两种都是基于 httpd 进行实现。都比较简单,两种方式也都有自己的优点。
二、目录挂载
目录挂载方式,是将 httpd 默认的访问路径,指定到物理机的某个资源目录。这种方式对于部署来讲比较快一些,但是版本记录需要另外实现。
打开 Docker Desktop,切换到 Linux 容器。然后在 PowerShell 执行下面命令,即可启动一个静态 Web 站点。
docker run -dit `
-p 8080:80 `
--restart=always `
--name my-static-website `
-v C:\inetpub\wwwroot\my-static-website:/usr/local/apache2/htdocs `
httpd:2.4
-参数 --restart always 在容器退出时总是重启容器。
-参数 -v C:\inetpub\wwwroot\my-static-website:/usr/local/apache2/htdocs 把物理机 C:\inetpub\wwwroot\my-static-website 静态文件目录挂在到容器内 httpd 的 /usr/local/apache2/htdocs 目录。
-参数 --name my-static-website 容器名称,根据自己需求命名即可。
-参数 httpd:2.4 基于 httpd的 2.4 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 进行查找。
三、镜像制作
镜像制作方式,是将静态资源放到 httpd 的默认访问路径下面,然后再制作成一个新的镜像。这种方式部署起来比较占空间,因为每次都需要生成一个新镜像,但是这种方式有版本记录、回滚操作起来都比较简单。
首先,在静态资源文件下面创建一个 Dockerfile 文件,内容如下。
# 基于 httpd 的 2.4 版本 进行制作
FROM httpd:2.4
# 删除 /usr/local/apache2/htdocs 目录下的全部文件。
RUN rm -rf /usr/local/apache2/htdocs/*
# 拷贝当前目录下的全部文件到 /usr/local/apache2/htdocs 目录下。
COPY . /usr/local/apache2/htdocs
制作镜像,在 PowerShell 执行下面命令,即可。
docker build -t my-static-website:2024-03-18-01 .
-参数 my-static-website:2024-03-18-01 格式 镜像名称:版本,具体名称根据自己的需求命名即可。
-参数 . 代表当前目录,如果 Dockerfile 在其他目录,需要在这里指定。
打开 Docker Desktop,切换到 Linux 容器。然后在 PowerShell 执行下面命令,即可启动一个静态 Web 站点。
docker run -d -p 8081:80 `
--restart always `
--name my-static-website `
my-static-website:2024-03-18-01
-参数 --restart always 在容器退出时总是重启容器。
-参数 my-static-website:2024-03-18-01 指定镜像的版本。
-参数 --name my-static-website 容器名称,根据自己的需求命名即可。