Docker中Nginx的安装与实践

简介: Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,我们在学习的时候可以利用 Docker 来省去复杂的环境搭建流程,比如做负载均衡、反向代理等实验。


一、Nginx 镜像下载



1. 查找 Nginx 镜像


登录 Docker Hub 官网搜索 Nginx 镜像,或者直接访问 https://hub.docker.com/_/nginx

微信图片1.png

也可以在终端使用 docker search nginx 来搜索 Nginx 镜像,OFFICAL 列为 OK 的为官方镜像。微信图片2.png


2. 下载 Nginx 镜像



从 Docker Hub 拉取镜像,命令如下:

$ docker pull nginx

使用 docker pull nginx: 来指定下载镜像的 tag,不指定默认为 latest。下载完成后使用 docker images 来查看本地已经下载好的镜像。

$ docker images
REPOSITORY    TAG    IMAGE ID    CREATED    SIZE
nginx       latest   08393e824c32   3 weeks ago  132MB


二、Nginx 容器运行



安装完成后,可以使用 docker run 命令来运行 Nginx 容器。


1. 配置端口映射


$ docker run --name nginx -p 8080:80 -d nginx
8c3026a0acd14f53e702a9854b2ffe4aa2668a552e11e171b3ae667cbe691d31


  • --name:指定容器名称,方便对容器的操作
  • -p ::指定端口映射,将容器的端口映射到主机的端口
  • -d:指定容器在后台运行,以守护进程的形式运行
  • 8c3026a...:容器ID,对容器进行操作时用于指定容器

运行成功后可以使用下面命令查看运行中的 Nginx 容器:

$ docker ps # 或 docker container ls
CONTAINER ID    IMAGE    COMMAND            CREATED    STATUS    PORTS        NAMES
8c3026a0acd1    nginx    "/docker-entrypoint.…"    5 minutes ago Up 5 minutes 0.0.0.0:8080->80/tcp nginx

打开浏览器访问 localhost:8080,结果如下:


微信图片3.png


2. 配置目录绑定


基于前面运行的容器,首先将容器中已经存在的配置等文件复制出来:

# 将容器中的Nginx配置文件目录复制到主机
$ sudo docker cp nginx:/etc/nginx ~/docker
# 将容器中的Nginx代理的静态页面目录复现到主机
$ sudo docker cp nginx:/usr/share/nginx/html ~/docker


命令格式:docker cp container:source_dir host_dir

然后停止并移除刚才启动的容器:

# 停止Nginx容器
$ docker container stop nginx
# 移除Nginx容器
$ docker container rm nginx

使用下面命令重新运行Nginx容器:

$ docker run --name nginx -p 8080:80 -v ~/docker/nginx:/etc/nginx -v ~/docker/html:/usr/share/nginx/html -d nginx
bc2b1d19570acb245011e607c1baee0706fa52f35c94cf3dc26dcfca1bc59abd

-v ::指定目录绑定,将主机的目录绑定到容器的目录上,实现文件目录共享

再次打开浏览器访问 localhost:8080,可以访问到 Nginx 的欢迎页面。在主机中修改 Nginx 代理的页面文件 index.html,保存后在浏览器中刷新页面:

微信图片4.png

我们发现,将主机上的目录绑定到容器中,不仅可以实现容器中文件的持久化,也更加方便的对容器中的文件进行修改,因为只需要在主机上修改。

目录
相关文章
|
2月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
584 108
kde
|
5天前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
159 4
|
1月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1459 9
|
3月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
1月前
|
缓存 安全 Linux
优化Docker镜像大小的多阶段构建实践
优化Docker镜像大小的多阶段构建实践
237 99
|
5天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
37 5
|
1月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
184 3
docker 安装 Postgres 17.6
|
20天前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
181 5
|
20天前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
210 2

热门文章

最新文章