Docker 安装 Nginx的详细步骤

发布时间:2021-07-09 16:43:11 作者:chen
来源:亿速云 阅读:251
# Docker 安装 Nginx 的详细步骤

## 前言

Nginx 是一款高性能的 Web 服务器和反向代理服务器,以其高并发处理能力和低内存消耗而闻名。Docker 是一种轻量级的容器化技术,能够快速部署和运行应用程序。将 Nginx 运行在 Docker 容器中,可以简化配置、提高可移植性,并实现快速部署。

本文将详细介绍如何使用 Docker 安装和配置 Nginx,包括以下内容:

1. Docker 环境准备
2. 拉取 Nginx 镜像
3. 运行 Nginx 容器
4. 自定义 Nginx 配置
5. 挂载本地目录
6. 配置 SSL 证书
7. 常见问题排查
8. 性能优化建议

---

## 1. Docker 环境准备

在开始之前,请确保您的系统已安装 Docker。以下是不同操作系统下的安装方法:

### Linux 系统安装 Docker

```bash
# 卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 更新软件包索引
sudo apt-get update

# 安装依赖包
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 设置稳定版仓库
echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker 引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 验证安装
sudo docker run hello-world

macOS 安装 Docker

  1. 下载 Docker Desktop for Mac:https://www.docker.com/products/docker-desktop
  2. 双击下载的 .dmg 文件并拖拽到 Applications 文件夹
  3. 启动 Docker 应用并完成初始化设置

Windows 安装 Docker

  1. 下载 Docker Desktop for Windows:https://www.docker.com/products/docker-desktop
  2. 运行安装程序并按照向导完成安装
  3. 启动 Docker Desktop 并等待服务就绪

2. 拉取 Nginx 镜像

Docker Hub 提供了官方 Nginx 镜像,我们可以直接拉取:

# 拉取最新版 Nginx 镜像
docker pull nginx:latest

# 查看已下载的镜像
docker images

如果需要特定版本的 Nginx,可以指定标签:

# 拉取指定版本的 Nginx
docker pull nginx:1.21.6

3. 运行 Nginx 容器

基础运行命令

# 运行一个简单的 Nginx 容器
docker run --name my-nginx -d -p 8080:80 nginx

参数说明: - --name my-nginx:为容器指定名称 - -d:后台运行容器 - -p 8080:80:将主机的 8080 端口映射到容器的 80 端口

验证容器运行

# 查看运行中的容器
docker ps

# 检查容器日志
docker logs my-nginx

现在,您可以通过浏览器访问 http://localhost:8080 看到 Nginx 的欢迎页面。


4. 自定义 Nginx 配置

方法一:直接进入容器修改

# 进入运行中的容器
docker exec -it my-nginx /bin/bash

# 容器内编辑配置文件
apt-get update && apt-get install vim
vim /etc/nginx/nginx.conf

注意:这种方法修改的配置在容器重启后会丢失,仅适用于临时测试。

方法二:使用自定义配置文件(推荐)

  1. 在本地创建配置文件目录:
mkdir -p ~/nginx-config/conf.d
  1. 创建自定义配置文件:
vim ~/nginx-config/conf.d/default.conf

示例配置内容:

server {
    listen       80;
    server_name  localhost;

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

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  1. 运行容器时挂载配置文件:
docker run --name my-nginx \
    -v ~/nginx-config/conf.d:/etc/nginx/conf.d \
    -d -p 8080:80 nginx

5. 挂载本地目录

挂载 HTML 目录

# 创建本地 HTML 目录
mkdir -p ~/nginx-html

# 创建测试页面
echo "<h1>Hello from Docker Nginx</h1>" > ~/nginx-html/index.html

# 运行容器并挂载目录
docker run --name my-nginx \
    -v ~/nginx-html:/usr/share/nginx/html \
    -v ~/nginx-config/conf.d:/etc/nginx/conf.d \
    -d -p 8080:80 nginx

挂载日志文件

# 创建日志目录
mkdir -p ~/nginx-logs

# 运行容器并挂载日志
docker run --name my-nginx \
    -v ~/nginx-html:/usr/share/nginx/html \
    -v ~/nginx-config/conf.d:/etc/nginx/conf.d \
    -v ~/nginx-logs:/var/log/nginx \
    -d -p 8080:80 nginx

6. 配置 SSL 证书

准备 SSL 证书

将您的证书文件(cert.pemkey.pem)放入本地目录:

mkdir -p ~/nginx-ssl
# 将您的证书文件复制到此目录

修改 Nginx 配置

创建 SSL 配置文件:

vim ~/nginx-config/conf.d/ssl.conf

内容示例:

server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/nginx/ssl/cert.pem;
    ssl_certificate_key  /etc/nginx/ssl/key.pem;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

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

运行支持 SSL 的容器

docker run --name my-nginx-ssl \
    -v ~/nginx-html:/usr/share/nginx/html \
    -v ~/nginx-config/conf.d:/etc/nginx/conf.d \
    -v ~/nginx-ssl:/etc/nginx/ssl \
    -v ~/nginx-logs:/var/log/nginx \
    -d -p 80:80 -p 443:443 nginx

7. 常见问题排查

容器启动失败

# 查看容器日志
docker logs my-nginx

# 常见错误:端口冲突
# 解决方案:更改主机端口或停止占用端口的服务

配置文件错误

# 测试 Nginx 配置
docker exec my-nginx nginx -t

# 如果测试失败,检查配置文件语法

权限问题

# 如果挂载的文件出现权限问题,可以:
# 1. 确保文件权限正确
# 2. 运行容器时添加 --user 参数
docker run --user 1000:1000 ...

8. 性能优化建议

调整工作进程数

# 在 nginx.conf 中设置
worker_processes auto; # 自动根据 CPU 核心数设置

启用 Gzip 压缩

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

调整连接限制

events {
    worker_connections 1024;
    multi_accept on;
}

使用静态资源缓存

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}

总结

通过 Docker 运行 Nginx 提供了诸多优势: - 快速部署和版本管理 - 环境隔离和安全性 - 配置持久化和易于迁移 - 资源利用高效

本文详细介绍了从基础安装到高级配置的全过程,您现在应该能够: 1. 在 Docker 中运行 Nginx 容器 2. 自定义 Nginx 配置 3. 挂载本地文件和目录 4. 配置 SSL 加密 5. 排查常见问题 6. 进行基本的性能优化

希望这篇指南能帮助您顺利在 Docker 环境中部署和管理 Nginx 服务器! “`

推荐阅读:
  1. 安装docker
  2. Linux下安装Docker的详细步骤

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx docker

上一篇:怎么设置redis服务开机自启动

下一篇:css中怎么实现一个阴影效果

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》