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

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

目录
相关文章
|
27天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
86 2
|
22天前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
673 2
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
1月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
376 11
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
14天前
|
安全 持续交付 Docker
深入理解并实践容器化技术——Docker 深度解析
深入理解并实践容器化技术——Docker 深度解析
33 2
|
21天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
136 1
|
23天前
|
Prometheus 监控 持续交付
深入理解Docker容器化技术:从基础到实践
深入理解Docker容器化技术:从基础到实践
|
24天前
|
安全 Docker 微服务
深入理解Docker容器技术:从基础到实践
深入理解Docker容器技术:从基础到实践
|
29天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
14天前
|
持续交付 开发者 Docker
深入理解并实践容器化技术——Docker篇
深入理解并实践容器化技术——Docker篇
28 0
|
1月前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
90 2