在现代的开发和运维环境中,使用容器化技术来部署应用已成为一种流行的做法。Nginx作为轻量级的Web服务器,广泛用于静态网站的部署和反向代理。本文将介绍如何使用Portainer创建Nginx容器并部署一个静态网站,以实现公网访问。
1. 环境准备
首先,你需要安装Docker和Portainer。Docker是一个开源的容器化平台,而Portainer是一个用于管理Docker环境的轻量级Web界面。你可以通过以下命令安装Docker:
sudo apt-get update
sudo apt-get install -y docker.io
安装完成后,你可以使用以下命令安装Portainer:
sudo docker volume create portainer_data
sudo docker run -d -p 9000:9000 --name portainer --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data portainer/portainer
安装完成后,打开浏览器,访问http://<你的服务器IP>:9000
,创建管理员账户。
2. 创建Nginx容器
在Portainer中,你可以很方便地创建Nginx容器。首先,登录到Portainer界面,选择“Containers”选项,然后点击“Add container”。
- 名称:填写容器的名称,例如
nginx-static-site
。 - 镜像:输入
nginx
,我们使用官方的Nginx镜像。 - 端口映射:将容器的80端口映射到宿主机的80端口(如果你希望使用其他端口,可以相应修改)。
- Host - Container:
80
-80
3. 配置Web静态站点
为了部署静态网站,你需要将网站文件上传到容器中。首先,准备好静态网站文件,例如index.html
。在Portainer界面中,选择nginx-static-site
容器,并点击“Duplicate/Edit”按钮。
在“Advanced container settings”部分,找到“Volumes”。我们将本地目录挂载到容器内部,以便Nginx可以访问到网站文件。假设你在服务器上有一个目录/var/www/static-site
,里面存放了你的静态文件。
- Host:
/var/www/static-site
- Container:
/usr/share/nginx/html
(这是Nginx默认的静态文件路径)
示例:
# 创建静态站点目录
mkdir -p /var/www/static-site
# 创建 index.html 文件
echo "<h1>欢迎访问我的静态网站</h1>" > /var/www/static-site/index.html
完成设置后,点击“Deploy the container”按钮,Portainer将创建并启动该容器。
4. 验证公网访问
确保防火墙允许80端口的访问。在Linux服务器上,可以使用UFW进行设置:
sudo ufw allow 80
然后,打开你的浏览器,访问http://<你的服务器IP>
,如果一切正常,你应该能看到“欢迎访问我的静态网站”的字样。
总结
通过Portainer创建Nginx容器并部署静态网站的过程非常简单。你只需几个步骤就能实现公网访问。使用容器化部署不仅提升了开发效率,也让应用的管理和扩展变得更加容易。接下来,你可以根据需求进行更多的配置,比如SSL证书的绑定、反向代理等,以满足生产环境的要求。