通过 Docker 部署 Nginx 服务
通过 Docker 部署 Nginx 服务的完整流程
1. 启动容器并映射端口
- 命令:
docker run --name nginx -P -dit centos - 参数解释:
--name nginx
:为容器命名为nginx
。-P
:随机映射容器中的端口到主机(物理机)的可用端口。-d
:以守护进程方式启动容器。-i
:支持交互式操作。-t
:分配一个伪终端。centos
:基础镜像,用于创建容器。
2. 进入容器
- 命令:
docker exec -it nginx /bin/bash - 作用:
- 进入名为
nginx
的容器,分配交互式终端并使用bash
命令行。
- 进入名为
3. 安装 Nginx 服务
(1) 检查并更换 YUM 源
- 问题:
- 如果使用默认的 YUM 源,可能会因镜像不维护而报错。
- 解决方法:
- 删除默认的 YUM repo 文件:
rm -rf /etc/yum.repos.d/* - 使用阿里云的 CentOS YUM 源:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo - 重新生成缓存:
yum clean all yum makecache
- 删除默认的 YUM repo 文件:
(2) 安装 Wget 和 Nginx
- 安装 Wget:
yum install wget -y - 安装 Nginx:
yum install nginx -y
4. 配置 Nginx
(1) 创建网站目录
- 命令:
mkdir -p /var/www/html - 作用:
- 新建目录
/var/www/html
,用于存放网站文件。
- 新建目录
(2) 创建首页文件
- 命令:
echo "<h1>My Name is Xianchao</h1>" > /var/www/html/index.html - 作用:
- 创建一个简单的 HTML 文件作为首页。
(3) 修改 Nginx 配置
- 打开配置文件:
vim /etc/nginx/nginx.conf - 修改
root
配置:- 找到
root
字段并修改为:root /var/www/html;
- 找到
- 保存并退出:
- 按
Esc
键,输入:wq
保存并退出。
- 按
5. 启动 Nginx 服务
- 命令:
nginx - 作用:
- 启动 Nginx 服务。
6. 测试 Nginx 服务
(1) 查看容器映射的端口
- 命令:
docker ps - 示例输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES abc123def456 centos "/bin/bash" 10 minutes ago Up 10 minutes 0.0.0.0:49154->80/tcp nginx - 说明:
49154->80/tcp
表示容器的 80 端口映射到了主机的 49154 端口。
(2) 使用主机 IP 和端口访问
- 在浏览器输入:
http://<主机IP>:49154 - 页面会显示:
My Name is Xianchao
(3) 使用容器的 IP 访问
- 获取容器 IP:
示例输出:cat /etc/hosts 172.17.0.2 - 直接访问容器 IP:
- 浏览器输入:
http://172.17.0.2
- 浏览器输入:
注意事项
-
YUM 源问题:
- 如果安装软件时报错(如
No URL in mirrorlist
),需要手动更换 YUM 源为阿里云的 CentOS 源。
- 如果安装软件时报错(如
-
端口映射:
- 使用
-P
参数时,Docker 会随机分配一个主机端口映射到容器的 80 端口。 - 如果需要指定端口,可以使用
-p
参数,例如:
这样主机的 8080 端口会映射到容器的 80 端口,访问方式为:docker run --name nginx -p 8080:80 -dit centos http://<主机IP>:8080
- 使用
-
Nginx 配置文件:
- 配置文件路径:
/etc/nginx/nginx.conf
。 - 默认的
root
参数需要指向网站文件所在目录,例如/var/www/html
。
- 配置文件路径:
-
容器与主机的网络通信:
- 可以通过主机的 IP 地址和映射端口访问容器内部的服务。
- 也可以直接通过容器的 IP 地址访问。
总结
通过以上步骤,您可以轻松使用 Docker 容器部署一个简单的 Nginx 服务。关键点包括:
-
启动容器与端口映射:
- 使用
docker run
启动容器,并通过-P
或-p
参数映射端口。
- 使用
-
安装必要的软件:
- 进入容器后,配置 YUM 源,然后安装 Nginx。
-
配置与测试:
- 配置 Nginx 的
root
目录,放置网站文件,然后启动服务。
- 配置 Nginx 的
-
访问容器服务:
- 使用主机 IP 和映射端口,或者直接使用容器 IP 进行访问。
迷茫的人生,需要不断努力,才能看清远方模糊的志向!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)