需求背景
实现步骤
- 安装 Docker(版本 20.10+)及 Docker Compose,确保用户拥有容器操作权限。
- 准备静态网站文件(HTML、CSS、JS 等),存放于
./website
目录。
FROM nginx:alpine
# 复制静态文件到Nginx默认目录
COPY ./website /usr/share/nginx/html
# 替换默认配置,开启gzip压缩
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 暴露80端口
EXPOSE 80
nginx
server {
listen 80;
root /usr/share/nginx/html;
gzip on;
gzip_types text/css application/javascript;
}
- 构建镜像:
docker build -t static-website:v1 .
- 运行容器:
docker run -d -p 8080:80 -v ./logs:/var/log/nginx --name my-website static-website:v1
-v
参数实现日志持久化到宿主机./logs
目录。
- 访问
http://localhost:8080
确认网站可用,查看./logs/access.log
验证日志输出。 - 扩展:通过 Docker Compose 集成 HTTPS(搭配 Certbot 容器),或使用 Nginx 作为反向代理指向其他容器。
关键知识点
- 基础镜像选择(alpine 版本减小镜像体积);
- 数据卷(Volume)实现持久化;
- 多阶段构建优化(如需压缩静态资源可增加压缩步骤)。