【Nginx】在 Docker 上安装 Nginx 的详细指南

目录

  • [1. 引言](#1. 引言)
  • [2. 准备工作](#2. 准备工作)
    • [2.1 安装 Docker](#2.1 安装 Docker)
      • [在 Ubuntu 上安装 Docker](#在 Ubuntu 上安装 Docker)
      • [在 CentOS 上安装 Docker](#在 CentOS 上安装 Docker)
    • [2.2 拉取 Nginx 镜像](#2.2 拉取 Nginx 镜像)
  • [3. 创建 Nginx 配置文件](#3. 创建 Nginx 配置文件)
  • [4. 创建 Dockerfile](#4. 创建 Dockerfile)
  • [5. 准备 SSL 证书](#5. 准备 SSL 证书)
  • [6. 构建 Docker 镜像](#6. 构建 Docker 镜像)
  • [7. 运行 Nginx 容器](#7. 运行 Nginx 容器)
  • [8. 测试配置](#8. 测试配置)
  • [9. 续订和更新 SSL 证书](#9. 续订和更新 SSL 证书)
  • 总结
  • 参考资料

1. 引言

Docker 是一个开源的容器化平台,允许开发者将应用及其依赖项打包到一个可移植的容器中。本文将介绍如何在 Docker 中安装和配置 Nginx,包括 SSL 的设置。

2. 准备工作

2.1 安装 Docker

确保你的系统上已安装 Docker。如果尚未安装,可以按照以下步骤进行安装:

在 Ubuntu 上安装 Docker

bash 复制代码
sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

在 CentOS 上安装 Docker

bash 复制代码
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

2.2 拉取 Nginx 镜像

使用以下命令拉取最新的 Nginx 镜像:

bash 复制代码
docker pull nginx

3. 创建 Nginx 配置文件

在主机上创建一个目录用于存放 Nginx 配置文件:

bash 复制代码
mkdir -p ~/nginx

在该目录下创建 nginx.conf 配置文件,内容如下:

nginx 复制代码
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/privkey.pem;

    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

4. 创建 Dockerfile

在同一目录下创建 Dockerfile,内容如下:

Dockerfile 复制代码
FROM nginx:latest

COPY nginx.conf /etc/nginx/nginx.conf
COPY ./html /usr/share/nginx/html

5. 准备 SSL 证书

将你的 SSL 证书和私钥放入一个目录,例如 ~/nginx/ssl

bash 复制代码
mkdir ~/nginx/ssl
# 将证书和私钥文件复制到 ~/nginx/ssl

确保修改 nginx.conf 中的路径指向正确的 SSL 证书和私钥位置。

6. 构建 Docker 镜像

~/nginx 目录下执行以下命令构建 Docker 镜像:

bash 复制代码
docker build -t my-nginx .

7. 运行 Nginx 容器

使用以下命令启动 Nginx 容器:

bash 复制代码
docker run -d -p 80:80 -p 443:443 --name nginx-server my-nginx

8. 测试配置

在浏览器中访问 http://yourdomain.comhttps://yourdomain.com,确保 Nginx 正常运行并提供 SSL 支持。

9. 续订和更新 SSL 证书

若使用 Let's Encrypt,可以通过 Certbot 在 Docker 中运行。可以使用 Docker Compose 或者创建一个单独的容器来管理证书续订。

总结

通过以上步骤,你可以在 Docker 中成功安装和配置 Nginx,同时启用 SSL。容器化的 Nginx 部署使得管理和扩展变得更加容易。

参考资料


希望这个指南能帮助你在 Docker 上成功部署 Nginx!如果有任何疑问或需要进一步的帮助,请随时问我!

相关推荐
是枚小菜鸡儿吖6 分钟前
从 0 到 1 生成自定义算子:CANN + AIGC 的自动化工作流
运维·自动化·aigc
考琪10 分钟前
Nginx打印变量到log方法
java·运维·nginx
SAP工博科技29 分钟前
SAP 公有云 ERP 多工厂多生产线数据统一管理技术实现解析
大数据·运维·人工智能
YongCheng_Liang32 分钟前
从零开始学虚拟化:桌面虚拟化(VDI)入门指南(架构 + 产品 + 部署)
运维·云计算
杜子不疼.39 分钟前
【Linux】库制作与原理(二):动态库的制作与使用
linux·运维·服务器
忆~遂愿44 分钟前
Runtime 上下文管理:计算实例的生命周期、延迟最小化与上下文切换优化
java·大数据·开发语言·人工智能·docker
消失的旧时光-19431 小时前
Nginx 是什么?为什么它不写在代码里?——从 0 认识 Nginx
运维·服务器·nginx
BJ_Bonree1 小时前
4月17日,博睿数据受邀出席GOPS全球运维大会2026 · 深圳站!
大数据·运维·人工智能
RisunJan1 小时前
Linux命令-lpq(查看打印队列状态)
linux·运维·服务器
山君爱摸鱼1 小时前
Linux-服务进程
linux·运维·服务器