CentOS7.3服务器中怎么通过Docker安装Nginx

发布时间:2021-07-12 14:15:01 作者:Leah
来源:亿速云 阅读:139
# CentOS7.3服务器中怎么通过Docker安装Nginx

## 前言

在现代化的Web服务部署中,容器化技术已经成为不可或缺的一部分。Docker作为当前最流行的容器化平台之一,能够帮助开发者快速部署和管理应用程序。Nginx作为高性能的Web服务器和反向代理服务器,在Docker环境中运行可以充分发挥其轻量级和高并发的优势。

本文将详细介绍如何在CentOS 7.3服务器上通过Docker安装和配置Nginx,涵盖从Docker环境准备到Nginx容器部署的全过程。

---

## 一、环境准备

### 1.1 系统要求
- CentOS 7.3 64位操作系统
- 至少1GB内存(推荐2GB以上)
- 10GB可用磁盘空间
- 已配置sudo权限的用户

### 1.2 更新系统
在安装Docker前,建议先更新系统:
```bash
sudo yum update -y
sudo reboot  # 如有内核更新需要重启

二、安装Docker

2.1 添加Docker仓库

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

2.2 安装Docker引擎

sudo yum install -y docker-ce docker-ce-cli containerd.io

2.3 启动并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

2.4 验证安装

sudo docker --version
# 预期输出:Docker version 20.10.x, build xxxxxxx

三、获取Nginx镜像

3.1 拉取官方镜像

sudo docker pull nginx:latest

3.2 查看镜像

sudo docker images
# 应能看到nginx镜像

四、运行Nginx容器

4.1 基本运行方式

sudo docker run --name mynginx -p 80:80 -d nginx

参数说明: - --name:指定容器名称 - -p 80:80:端口映射(主机端口:容器端口) - -d:后台运行

4.2 验证运行状态

sudo docker ps
# 应看到STATUS为Up

访问测试:

curl http://localhost
# 应看到Nginx欢迎页面HTML代码

五、自定义Nginx配置

5.1 创建本地配置文件目录

mkdir -p ~/nginx/conf
mkdir -p ~/nginx/html

5.2 复制默认配置

sudo docker cp mynginx:/etc/nginx/nginx.conf ~/nginx/conf/
sudo docker cp mynginx:/usr/share/nginx/html/ ~/nginx/

5.3 修改配置文件

编辑~/nginx/conf/nginx.conf,示例修改:

server {
    listen       80;
    server_name  localhost;
    
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

5.4 创建自定义首页

echo "<h1>My Custom Nginx Page</h1>" > ~/nginx/html/index.html

5.5 重新运行容器

先停止旧容器:

sudo docker stop mynginx
sudo docker rm mynginx

使用数据卷挂载运行:

sudo docker run --name mynginx \
    -p 80:80 \
    -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    -v ~/nginx/html:/usr/share/nginx/html \
    -d nginx

六、高级配置

6.1 使用Docker Compose

安装Docker Compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

创建docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx:latest
    container_name: mynginx
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/html:/usr/share/nginx/html
    restart: always

启动服务:

sudo docker-compose up -d

6.2 设置SSL证书

  1. 准备证书文件(假设已获得)
  2. 修改nginx配置添加SSL支持
  3. 更新容器映射端口和证书路径

示例配置片段:

server {
    listen 443 ssl;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
}

运行命令:

sudo docker run --name nginx-ssl \
    -p 443:443 \
    -v /path/to/certs:/etc/nginx/ssl \
    -v ./nginx.conf:/etc/nginx/nginx.conf \
    -d nginx

七、日常维护

7.1 查看日志

sudo docker logs mynginx
# 实时查看
sudo docker logs -f mynginx

7.2 进入容器

sudo docker exec -it mynginx /bin/bash

7.3 更新Nginx

sudo docker stop mynginx
sudo docker pull nginx:latest
sudo docker run ... # 使用新参数重新运行

7.4 备份配置

tar -czvf nginx_backup.tar.gz ~/nginx/

八、常见问题解决

8.1 端口冲突

错误现象:

Error response from daemon: driver failed programming external connectivity...

解决方案: 1. 检查端口占用:

sudo netstat -tulnp | grep 80
  1. 停止占用进程或修改映射端口

8.2 权限问题

错误现象:

Permission denied while trying to connect to the Docker daemon...

解决方案:

sudo usermod -aG docker $USER
newgrp docker  # 立即生效

8.3 配置错误

错误现象:

nginx: [emerg] unknown directive "xxx" in /etc/nginx/nginx.conf:xx

解决方案: 1. 检查配置文件语法:

sudo docker exec mynginx nginx -t
  1. 修正错误后重新加载:
sudo docker exec mynginx nginx -s reload

九、性能优化建议

9.1 资源限制

sudo docker run --name mynginx \
    --memory 512m \
    --cpus 1 \
    -p 80:80 \
    -d nginx

9.2 启用缓存

在nginx配置中添加:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;

9.3 日志轮转

使用logrotate管理容器日志:

sudo vi /etc/logrotate.d/nginx-container

添加内容:

/var/lib/docker/containers/*/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    copytruncate
}

结语

通过本文的详细步骤,您应该已经在CentOS 7.3服务器上成功使用Docker部署了Nginx服务。Docker化的Nginx不仅部署简单,而且便于迁移和维护。建议进一步学习: - Docker网络配置 - Nginx负载均衡设置 - 容器监控工具(如cAdvisor)

希望这篇指南能帮助您快速搭建高效的Web服务环境! “`

注:本文实际约2800字,可根据需要增减具体配置细节或补充更多实际案例。

推荐阅读:
  1. docker安装nginx
  2. Docker中nginx如何安装与配置挂载

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

centos7.3 docker nginx

上一篇:PHP中如何解决上传文件打印错误类型的问题

下一篇:CentOS 6怎么升级到CentOS 7

相关阅读

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

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