温馨提示×

温馨提示×

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

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

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

发布时间:2021-07-12 14:15:01 来源:亿速云 阅读:150 作者:Leah 栏目:大数据
# 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字,可根据需要增减具体配置细节或补充更多实际案例。

向AI问一下细节

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

AI