一、简介
Nginx是一个高性能的HTTP和反向代理服务器,同时支持IMAP/POP3/SMTP服务。它最初由伊戈尔·赛索耶夫开发,以解决高并发和高负载问题。Nginx以其稳定性、丰富的功能集、简单的配置文件和低系统资源消耗而著称。它常用于负载均衡、反向代理和动静分离,能够高效处理大量连接,提高Web服务器性能。无论是作为Web服务器还是反向代理,Nginx都表现出色,成为当今最受欢迎的服务器之一。
今天介绍两种方式,目录挂载和镜像制作,这两种都是基于 nginx 进行实现。都比较简单,两种方式也都有自己的优点。
二、目录挂载
目录挂载方式,是将 nginx 默认的访问路径,指定到物理机的某个资源目录。这种方式对于部署来讲比较快一些,但是版本记录需要另外实现。
打开 Docker Desktop,切换到 Linux 容器。然后在 PowerShell 执行下面命令,即可启动一个静态 Web 站点。
docker run -d -p 8090:80 `
--restart always `
-v C:\inetpub\wwwroot\my-static-website:/usr/share/nginx/html `
--name my-static-website `
nginx:1.24.0
-参数 --restart always 在容器退出时总是重启容器。
-参数 -v C:\inetpub\wwwroot\my-static-website:/usr/share/nginx/html 把物理机 C:\inetpub\wwwroot\my-static-website 静态文件目录挂在到容器内 nginx 的 /usr/share/nginx/html 目录。
-参数 --name my-static-website 容器名称,根据自己需求命名即可。
-参数 nginx:1.24.0 基于 nginx 的 1.24.0 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 进行查找。
三、镜像制作
镜像制作方式,是将静态资源放到 nginx 的默认访问路径下面,然后再制作成一个新的镜像。这种方式部署起来比较占空间,因为每次都需要生成一个新镜像,但是这种方式有版本记录、回滚操作起来都比较简单。
首先,在静态资源文件下面创建一个 Dockerfile 文件,内容如下。
# 基于 nginx 的 1.24.0 版本 进行制作
FROM nginx:1.24.0
# 删除 /usr/share/nginx/html 目录下的全部文件。
RUN rm -rf /usr/share/nginx/html/*
# 拷贝当前目录下的全部文件到 /usr/share/nginx/html 目录下。
COPY . /usr/share/nginx/html
制作镜像,在 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 容器名称,根据自己的需求命名即可。