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

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

目录
相关文章
|
7天前
|
Linux iOS开发 Docker
Docker:容器化技术的领航者 —— 从基础到实践的全面解析
在云计算与微服务架构日益盛行的今天,Docker作为容器化技术的佼佼者,正引领着一场软件开发与部署的革命。它不仅极大地提升了应用部署的灵活性与效率,还为持续集成/持续部署(CI/CD)提供了强有力的支撑。
176 69
|
26天前
|
应用服务中间件 Linux nginx
Docker镜像-手动制作yum版nginx镜像
这篇文章介绍了如何手动制作一个基于CentOS 7.6的Docker镜像,其中包括下载指定版本的CentOS镜像,创建容器,配置阿里云软件源,安装并配置nginx,自定义nginx日志格式和web页面,最后提交镜像并基于该镜像启动新容器的详细步骤。
91 21
Docker镜像-手动制作yum版nginx镜像
|
26天前
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
139 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
2天前
|
Cloud Native 持续交付 Docker
云原生技术入门与实践:Docker容器化部署示例
【9月更文挑战第25天】在数字化转型的浪潮下,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,为初学者揭示云原生技术的核心概念及其应用价值。我们将以Docker容器为例,逐步引导读者了解如何将应用程序容器化,并在云端高效运行。这不仅是对技术趋势的跟随,更是对资源利用和开发效率提升的探索。
12 4
|
1天前
|
应用服务中间件 nginx Docker
docker应用部署---nginx部署的配置
这篇文章介绍了如何使用Docker部署Nginx服务器,包括搜索和拉取Nginx镜像、创建容器并设置端口映射和目录映射,以及如何创建一个测试页面并使用外部机器访问Nginx服务器。
|
1天前
|
Docker 容器
Docker安装及镜像源修改
本文介绍了Docker的安装过程和如何修改Docker镜像源以加速下载。包括更新系统包、安装所需软件包、设置yum源、安装Docker以及验证安装是否成功。接着,提供了修改Docker镜像源的步骤,包括创建配置文件、编辑配置文件以设置镜像加速地址,并提供了几个常用的国内镜像源地址。最后,通过重启Docker服务和检查配置是否生效来完成镜像源的修改。
Docker安装及镜像源修改
|
25天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
26天前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
131 3
Ubuntu 18.04 安装Docker实战案例
|
26天前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
86 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
9天前
|
运维 Ubuntu Linux
深入理解并实践Docker容器化技术
深入理解并实践Docker容器化技术
36 6