您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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 # 如有内核更新需要重启
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo docker --version
# 预期输出:Docker version 20.10.x, build xxxxxxx
sudo docker pull nginx:latest
sudo docker images
# 应能看到nginx镜像
sudo docker run --name mynginx -p 80:80 -d nginx
参数说明:
- --name
:指定容器名称
- -p 80:80
:端口映射(主机端口:容器端口)
- -d
:后台运行
sudo docker ps
# 应看到STATUS为Up
访问测试:
curl http://localhost
# 应看到Nginx欢迎页面HTML代码
mkdir -p ~/nginx/conf
mkdir -p ~/nginx/html
sudo docker cp mynginx:/etc/nginx/nginx.conf ~/nginx/conf/
sudo docker cp mynginx:/usr/share/nginx/html/ ~/nginx/
编辑~/nginx/conf/nginx.conf
,示例修改:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
echo "<h1>My Custom Nginx Page</h1>" > ~/nginx/html/index.html
先停止旧容器:
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
安装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
示例配置片段:
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
sudo docker logs mynginx
# 实时查看
sudo docker logs -f mynginx
sudo docker exec -it mynginx /bin/bash
sudo docker stop mynginx
sudo docker pull nginx:latest
sudo docker run ... # 使用新参数重新运行
tar -czvf nginx_backup.tar.gz ~/nginx/
错误现象:
Error response from daemon: driver failed programming external connectivity...
解决方案: 1. 检查端口占用:
sudo netstat -tulnp | grep 80
错误现象:
Permission denied while trying to connect to the Docker daemon...
解决方案:
sudo usermod -aG docker $USER
newgrp docker # 立即生效
错误现象:
nginx: [emerg] unknown directive "xxx" in /etc/nginx/nginx.conf:xx
解决方案: 1. 检查配置文件语法:
sudo docker exec mynginx nginx -t
sudo docker exec mynginx nginx -s reload
sudo docker run --name mynginx \
--memory 512m \
--cpus 1 \
-p 80:80 \
-d nginx
在nginx配置中添加:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
使用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字,可根据需要增减具体配置细节或补充更多实际案例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。