前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker安装Nginx

Docker安装Nginx

原创
作者头像
会洗碗的CV工程师
发布2024-06-12 23:09:48
2340
发布2024-06-12 23:09:48
举报
文章被收录于专栏:Nginx

Docker作为容器化技术的代表,为现代软件开发和部署带来了革命性的变革。在众多应用中,使用Docker来安装和运行Nginx具有诸多优点。以下是对这些优点的详细阐述:

  1. 轻量级与高效:Docker容器是基于操作系统的虚拟化技术,与传统的虚拟机相比,它更加轻量级,占用的系统资源更少。因此,使用Docker安装Nginx可以更加高效地利用服务器资源,降低成本。
  2. 快速部署:Docker镜像包含了Nginx及其依赖的所有配置和文件,只需一个命令即可快速部署。这大大缩短了从开发到生产环境的部署时间,提高了开发效率。
  3. 可移植性:Docker容器可以在任何支持Docker的平台上运行,无需担心操作系统的差异。这使得Nginx的部署变得更加灵活,可以轻松地在不同的环境中迁移。
  4. 版本控制:Docker支持通过镜像标签来管理不同版本的Nginx。这使得版本回滚、升级和测试变得更加简单,降低了风险。
  5. 隔离性:每个Docker容器都是独立的,它们之间互不影响。这使得Nginx的运行更加稳定,减少了因其他应用或服务崩溃而导致的连锁反应。
  6. 安全性:Docker提供了丰富的安全特性,如容器间的网络隔离、资源限制和访问控制等。这些特性可以帮助保护Nginx免受潜在的安全威胁。
  7. 可扩展性:Docker支持水平扩展,可以轻松增加或减少Nginx容器的数量,以适应不同的负载需求。这使得Nginx的扩展变得更加灵活和简单。
  8. 集成与自动化:Docker可以与其他工具(如Kubernetes、Docker Compose等)集成,实现自动化的部署、监控和管理。这使得Nginx的运维变得更加简单和高效。

综上所述,使用Docker安装Nginx具有轻量级、高效、快速部署、可移植性、版本控制、隔离性、安全性和可扩展性等诸多优点。这些优点使得Docker成为现代软件开发和部署中不可或缺的一部分。

接下来讲解如何在Docker中安装Nginx

取官方的Nginx镜像

代码语言:javascript
复制
[root@localhost ~]# docker pull nginx

以下命令使用 Nginx 默认的配置来启动一个 Nginx 容器实例:

代码语言:javascript
复制
[root@localhost ~]# docker run --rm --name nginx-test -p 8080:80 -d nginx2358354f206fdbc5c20199a307
392c11972b1bedab306144e5af56995edbb3e4b

如图所示:

参数的含义如下: --rm:容器终止运行后,自动删除容器文件。 --name nginx-test:容器的名字叫做Nginx-test,名字自己定义. -p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口 -d:容器启动后,在后台运行

Nginx 服务部署,映射本地目录到Nginx容器

创建本地目录,用于存放Nginx的相关文件信息.

代码语言:javascript
复制
1mkdir -p /opt/nginx/html  /opt/nginx/conf

参数:

  • www: 目录将映射为 nginx 容器配置的虚拟目录。
  • conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器ID可以查看 docker ps 命令输入中的第一列

代码语言:javascript
复制
docker cp 358354f206fd:/etc/nginx/nginx.conf /home/nginx/conf/

部署命令

代码语言:javascript
复制
docker run --rm -d -p 8081:80 --name nginx-test-web \2  -v /opt/nginx/www:/usr/share/nginx/html \3  -v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \4  nginx

命令说明:

  • --rm:容器终止运行后,自动删除容器文件。
  • -p 8081:80: 将容器的 80 端口映射到主机的 8081 端口.
  • --name nginx-test-web:将容器命名为 nginx-test-web
  • -v /home/nginx/html:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。
  • -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

遇到的问题:

首先在docker pull nginx的时候,老是出现以下错误:

但是其实我的网络是没有问题的,ping一下百度的网址就知道了:

这里可以确定我的网络是没有问题,后面考虑到有可能是镜像地址的原因,加上了国内镜像,在docker的引擎配置文件添加以下镜像源:

代码语言:bash
复制
vim /etc/docker/daemon.json
代码语言:bash
复制
{
    "registry-mirrors":[
        "https://i1el1i0w.mirror.aliyuncs.com",
        "https://hub-mirror.c.163.com",
        "https://registry.aliyuncs.com",
        "https://registry.docker-cn.com",
        "https://docker.mirrors.ustc.edu.cn"
    ]
}

即可。

2、重启docker服务

重启守护进程

代码语言:javascript
复制
systemctl daemon-reload

重启服务

代码语言:javascript
复制
systemctl restart docker

即可顺利解决。

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、重启docker服务
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档