【云原生 | 从零开始学Docker】三、Docker实战之安装Nginx和Tomcat

本文涉及的产品
云防火墙,500元 1000GB
简介: 通过前面两章的学习,相信各位朋友们都在自己的服务器上安装了docker了,也熟悉了一些常用的指令,这里我带着大家去做一些简单的实战来让各位更熟悉这些指令!接下来的内容最好跟着敲一遍,记一下步骤,能让你更深刻理解!

Nginx


1.1 搜索镜像


在这里我们有两个选择。


1.在shell里,使用指令docker search nginx来搜索nginx的镜像,然后选择下载。


2.去docker hub搜索nginx,里面有详细的内容以及安装(对于nginx不熟悉的可以这么做)


这里我们就选择用shell安装,官网的地址放在这里:docker hub的nginx


15.png


1.2 下载


找到镜像之后,我们选择直接用docker pull nginx下载最新版的Nginx。


16.png


pull会自动下载最新的版本,我们看到分层下载之后这个界面就是安装成功了。


1.3 启动,绑定端口


还记得我们之前说的docker run的-p选项嘛,可以通过绑定端口让外部通过这个端口访问内部,今天我们就要来实战试一试。因为nginx常用的就是80端口,所以我们通过外部一个没有用过的端口来和80端口绑定!


docker run -d --name nginx01 -p 3456:80 nginx #这里我们用3456端口


上面这段指令的意思是,以后台启动nginx,把该镜像名字改为nginx01,并且把宿主机的3456端口和nginx的80端口绑定。


17.png


启动成功!


1.4 查看端口


我们设置完端口之后,先通过curl指令检查一下端口。


curl localhost:3456 welcome to nginx


18.png


没问题,然后我们尝试一下通过服务器ip:3456进入nginx,如果可以进入那就是没问题。


19.png


嗯? 咱们不是没问题吗,为什么访问不了?其实这个问题是因为防火墙的原因,这里我们解释一下


镜像通过run启动起来容器,容器就相当于独立的小的linux,在里面也有一个防火墙,我们启动了nginx 开启了80端口,但是他和外面隔离,外部访问不了,我们的linux也有防火墙,然后外网如果访问服务器,比如你开启3456端口,外网就能通过这个端口访问了,但是此时还是不能访问docker,我们要让宿主机和容器打通 ,就是-p。


但是腾讯或者阿里云都是有一个安全组的,外网要访问,先通过安全组再进入宿主机再进入docker,所以我们需要在安全组里面打开对应端口才可以访问。


0.png


选择防火墙,添加规则


111.png


之后点击确定,我们就可以访问了。


222.png


到这里,nginx没有问题了!我们再进入这个容器里面看看。


1.5 进入nginx


我们用whereis nginx查看nginx的路径


4.png


然后通过exec -it交互模式进入nginx


40.png


我们发现成功进入,到了这一步就算完成了。


恭喜你,成功的用docker安装了nginx,接下来我们去尝试一下tomcat!tomcat和nginx差不多,相信你现在肯定没问题。


Tomcat


2.1 搜索镜像


和nginx步骤一样,如果你不熟悉,就去docker hub看吧!tomcat


这里给大家介绍一个测试常用的操作


docker run -it --rm tomcat:9.0

如果加上–rm的话,当你停止当前容器它就会自动删除,也没有历史记录,不加的话停止了还可以查到容器,这个功能最好是在测试的时候使用!


2.2 下载


这里就不去搜索了,直接用pull下载最新版的tomcat,记得退出刚才进入的nginx!


docker pull tomcat


41.png


2.3 启动tomcat


这里我们依旧使用-p来绑定端口连通,然后在服务器防火墙开放端口,起名为tomcat01并且后台运行!


docker run -d -p 3357:8080 --name tomcat01 tomcat


42.png


2.4 测试


我们启动之后,端口也开放了,我们就可以通过浏览器去访问,和nginx一样,我们通过服务器ip:3357来访问我们的tomcat。


43.png


此时我们发现一个问题,可以访问tomcat,但是显示404是什么鬼!


其实这是一个坑,在第一章的时候我们提过,docker为什么便捷,小,是因为他是阉割版本,因为官方阉割镜像的原因,默认是最小的镜像,会把不必要的都剔除,我们进入tomcat看一下具体问题。


44.png


进去之后我们ls一下查看文件。


45.png


出问题的在于webapps这个文件,我们进去查看一下


46.png


好家伙,文件夹里空无一物,怪不得访问404,那我们怎么解决这个问题呢。


这个时候有两个解决办法,我们发现有一个webapps.dist这个文件,我们可以把这个文件里面的东西复制导webapps来解决这个问题,或者是直接把这个文件改成webapps,把原来的删掉!


cp -r webapps.dist/* webapps


我们通过cp复制过去!


47.png


可以看到,现在webapps里面有东西了,我们这个时候刷新下网页看看!


48.png


可以看到,问题解决了!


好了,现在你学会了如何通过docker去安装nginx和tomcat,还学会了端口链接等操作,那么我们在最后放一个问题,我们现在每次修改配置文件都要进去很麻烦,要是能在外部提供一个映射路径,达到在容器修改文件名容器内部就自动修改是不是很方便,这个功能其实就是我们的数据卷!我们将在第五章讲到,各位可以期待一下~

目录
相关文章
|
1月前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
100 2
|
6天前
|
NoSQL 关系型数据库 应用服务中间件
docker基础篇:安装tomcat
docker基础篇:安装tomcat
111 64
|
3天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
28 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
1月前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
231 1
|
2月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
185 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
1月前
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
37 4
|
1月前
|
负载均衡 应用服务中间件 nginx
基于Nginx和Consul构建自动发现的Docker服务架构——非常之详细
通过使用Nginx和Consul构建自动发现的Docker服务架构,可以显著提高服务的可用性、扩展性和管理效率。Consul实现了服务的自动注册与发现,而Nginx则通过动态配置实现了高效的反向代理与负载均衡。这种架构非常适合需要高可用性和弹性扩展的分布式系统。
55 3
|
2月前
|
安全 Cloud Native Shell
云上攻防:云原生篇&Docker容器逃逸
本文介绍了Docker的基本概念及其对渗透测试的影响,重点讲解了容器逃逸的方法。Docker是一种轻量级的容器技术,与虚拟机相比,具有更高的便携性和资源利用率。然而,这也带来了安全风险,特别是容器逃逸问题。文章详细描述了三种常见的容器逃逸方法:不安全的配置、相关程序漏洞和内核漏洞,并提供了具体的检测和利用方法。此外,还介绍了几种特定的漏洞(如CVE-2019-5736和CVE-2020-15257)及其复现步骤,帮助读者更好地理解和应对这些安全威胁。
147 0
云上攻防:云原生篇&Docker容器逃逸
|
2月前
|
应用服务中间件 Linux nginx
Mac os 安装 nginx 教程(success)
这篇文章是关于如何在Mac OS系统上使用Homebrew安装nginx及其依赖,并解决安装过程中可能出现的权限问题。
226 0
Mac os 安装 nginx 教程(success)
|
2月前
|
负载均衡 算法 应用服务中间件
Nginx安装及配置详解
Nginx安装及配置详解