新用户注册入口 老用户登录入口

[转载]Docker学习重点(4)~docker 部署环境

文章作者:转载 更新时间:2023-03-12 10:54:44 阅读数量:64
文章标签:Docker容器NginxTomcatKibana数据卷-v
本文摘要:该文详述了如何利用Docker容器技术部署Nginx、Tomcat以及Elasticsearch+kibana,从下载镜像到创建并启动容器,并通过端口映射(-p)实现服务访问。针对配置文件修改不便的问题,提出了使用数据卷(-v)进行容器内外部文件同步的解决方案。在部署Elasticsearch时,特别关注了其内存消耗高的特性,通过-e参数限制容器内存使用,并展示了如何映射多个端口以满足Elasticsearch服务需求。同时,提及了Kibana与Elasticsearch的连接问题,强调了网络环境配置的重要性。整个教程实用性强,覆盖了Docker容器基础操作至具体服务部署优化的关键要点。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/weixin_45630258/article/details/124785912。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。


一、部署Nginx

1、下载nginx镜像(这一步可以省略,直接进入第二步会自动下载的) pull

2、启动容器 run

3、进入容器 exec


1、镜像:

  • docker hub官网搜索nginx

  • 下载:docker pull nginx
  • 查看下载情况:docker images


2、容器:

  • 创建容器命令:docker run [-d 后台启动] [–name nginx01 起别名] [-p 3344:80 端口:协议] [镜像(包含版本)]

  • (创建)启动容器实例:docker run -d --name nginx01 -p 3344:80 nginx
  • 查看容器运行状况:docker ps

  • 本机访问测试一下:curl localhost:3344

■ 端口暴露 -p 宿主机端口:容器内部端口

  • 浏览器输入: http://服务器ip地址:3344/
    3344 是暴露的端口

----接下来:

  • 进入(正在运行的)容器内部:docker exec -it nginx01 /bin/bash
    [root@iZwz9535z41cmgcpkm7i81Z /]# docker exec -it nginx01 /bin/bash
    root@d1a29e4791e3:/# whereis nginx
    nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
    root@d1a29e4791e3:/# cd /etc/nginx
    root@d1a29e4791e3:/etc/nginx# ls
    conf.d	fastcgi_params	mime.types  modules  nginx.conf  scgi_params  uwsgi_params
    root@d1a29e4791e3:/etc/nginx# 
    

■ /bin/bash

是Linux的一种常用shell脚本,用于解释执行Linux命令,根据镜像支持的shell的不同,可以使用不同的的shell脚本。

  • 容器,也是和虚拟机一样是虚拟技术呀,通过脚本执行/bin/bash实现,创建并进入容器内部docker

● 思考问题:每次改动nginx配置文件,都需要进入容器内部,十分麻烦:

要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改?-v 数据卷技术!



二、部署tomcat

  • docker run 可以不用pull,能自动下载

  • ctrl+c退出
docker pull tomcat:9.0 
  • 启动运行,应该加上版本号:
docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0
  • 进入容器
docker exec -it tomcat01 /bin/bash

● 部署tomcat,发现问题:

1、linux命令少了

2、没有webapps

这是阿里云镜像的原因:默认使用最小镜像,所有不必要的都剔除了,保证最小可运行环境

  • 可以通过拷贝的方式,解决没有webapps的问题:

  • 在浏览器中输入:http://服务器ip地址:3355/ 进行访问

● 思考问题:我们以后部署项目,如果每次都要进入容器很麻烦?

  • 要是可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,容器内部就可以自动修改?-v 数据卷技术!



三、部署es+kibana

● Elasticsearch 的问题:

  • es 暴露的端口很多

  • es 十分耗内存

  • es 的数据一般需要放置到安全目录!挂载


1、问题1:es 十分耗内存

  • 下载启动运行elastissearch 之后,Linux系统就变得特别卡
# 启动了 linux就卡住了
docker stats# 查看 cpu的状态 #es 是十分耗内存的,1.xG
# 1核2G(学生机)! # 查看 docker stats

2、问题2:es 需要暴露的端口很多 -p

# (下载)启动 elasticsearch
$ docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2# 查看内存占用情况
docker stats

# 先感觉stop一下
docker stop ba18713ca536

3、es 十分耗内存的解决:增加内存的限制,修改配置文件 -e 环境配置修改

# 通过 -e 限制内存
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
[root@iZwz9535z41cmgcpkm7i81Z /]# curl localhost:9200/
{"name" : "14329968b00f","cluster_name" : "docker-cluster","cluster_uuid" : "0iDu-G_KTo-4X8KORDj1XQ","version" : {"number" : "7.6.2","build_flavor" : "default","build_type" : "docker","build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f","build_date" : "2020-03-26T06:34:37.794943Z","build_snapshot" : false,"lucene_version" : "8.4.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

4、思考:用kibana连接elasticsearch?

  • 思考(kibana连接elasticsearch)网络如何连接过去



☺ 参考来源:
狂神的B站视频《【狂神说Java】Docker最新超详细版教程通俗易懂》 https://www.bilibili.com/video/BV1og4y1q7M4



如果本文对你有帮助的话记得给一乐点个赞哦,感谢!

本篇文章为转载内容。原文链接:https://blog.csdn.net/weixin_45630258/article/details/124785912。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
DockerDocker是一个开源的应用容器引擎,它通过容器化技术将应用程序及其依赖打包成可移植的镜像,并可以在任何安装了Docker环境的操作系统上运行。在本文中,作者详细介绍了如何使用Docker部署Nginx、Tomcat以及Elasticsearch+kibana服务,包括下载镜像、启动容器、配置端口映射和数据卷等操作。
数据卷(-v)在Docker中,数据卷是一种持久化存储机制,允许在容器之间共享和重用数据,即使容器停止或被删除,数据也能得到保留。文中提到,在部署Nginx和Tomcat时,为了方便在容器外部修改配置文件并在容器内部自动更新,可以通过-v参数创建数据卷,将宿主机的某个目录与容器内的某个目录进行绑定挂载,实现数据同步。
端口映射(-p)在Docker容器网络配置中,端口映射是一项重要功能,它允许容器内部的服务端口与宿主机的端口建立连接关系。例如,通过`-p 3344:80`这样的命令行参数,可以将宿主机的3344端口流量转发至容器内部的80端口,使得外部客户端能够通过访问宿主机IP地址的指定端口来间接访问到容器内运行的服务(如Nginx服务器)。
ElasticsearchElasticsearch是一个基于Lucene的分布式、RESTful风格的搜索和数据分析引擎,常用于日志分析、监控数据展示、全文检索等领域。在文章中,作者提到了部署Elasticsearch时遇到的问题,包括其内存消耗大、需要暴露多个端口等,并演示了如何限制Elasticsearch容器的内存使用量以适应资源有限的环境。
KibanaKibana是一个开源的数据可视化平台,主要用于对Elasticsearch中的数据进行实时分析和可视化展现。在部署Elasticsearch之后,文中提出了如何思考Kibana如何连接至Elasticsearch的网络配置问题,以便于用户能够通过Kibana界面直观地管理和分析存储在Elasticsearch中的数据。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入学习了Docker容器技术部署Nginx、Tomcat及Elasticsearch+kibana的相关知识后,为进一步理解容器化服务的实践与趋势,以下为您推荐几篇具有针对性和时效性的延伸阅读内容:
1. Docker最新发展动态:近期,Docker公司宣布了对Docker Desktop商业版订阅策略的重大更新,强调企业级功能支持与安全性提升。用户可关注官方博客以获取最新产品信息和技术路线图,从而更好地规划自身的容器化部署策略(来源:Docker官网博客)。
2. Kubernetes与Docker编排对比研究:随着云原生技术的发展,Kubernetes已成为容器编排领域的事实标准。一篇深度分析文章详细解读了Kubernetes相较于Docker Swarm在集群管理、服务发现、滚动升级等方面的优势,并探讨了如何在实际项目中根据需求选择合适的容器编排工具(来源:InfoQ)。
3. 容器数据持久化最佳实践:鉴于文中提到的数据卷(-v)在Docker中的重要应用,一篇由行业专家撰写的专题文章深入剖析了容器数据持久化的多种策略,包括使用数据卷、配置挂载以及与云存储服务集成等方案,并结合实例展示了其在生产环境下的具体运用(来源:Medium)。
4. 优化Elasticsearch资源消耗的方法论:针对Elasticsearch在内存占用方面的挑战,一篇最新的技术分享聚焦于如何通过调整JVM参数、索引优化以及硬件资源配置来有效降低Elasticsearch运行时的内存消耗,并保持高性能搜索与分析能力(来源:Elastic官方博客)。
5. 微服务架构下容器安全防护指南:在广泛采用容器技术构建微服务架构的过程中,安全问题不容忽视。某信息安全团队最近发布的一份报告详尽阐述了容器安全威胁模型,并提供了包括镜像扫描、网络隔离、权限控制等在内的容器安全最佳实践(来源:CNCF社区安全工作组)。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
history | grep keyword - 查找历史命令中包含关键词的部分。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
HessianRPC在高负载下服务降级与熔断器模式保障用户体验 05-01 jQuery和TweenMax简单实用的水平手风琴特效 01-20 jquery选择国家下拉列表框插件 01-21 Sqoop在Hadoop集群中的数据传输机制及数据库迁移、收集与备份恢复应用实践 12-23 简约渔具批发牧渔企业类网站前端模板下载 11-09 基于bootstrap功能齐全的jQuery进度条插件 10-20 简约大气男性护肤产品HTML5网站模板 09-22 宽屏大气机械设备制造公司网站模板 08-13 演讲会门票销售网站模板下载 07-30 本次刷新还10个文章未展示,点击 更多查看。
经典响应式投资理财企业前端模板 06-26 基于Redis的键值对存储实现用户阅读状态跟踪与管理 06-24 Netty框架中CannotFindServerSelection异常:服务器地址配置错误与通道类型匹配详解 06-18 简洁设计公司响应式网站模板下载 05-06 绿色苗木草坪种植绿化类企业前端CMS模板下载 04-30 怎么在cmd开启mysql服务 04-15 保洁公司家庭保洁服务网站模板 03-26 SpringCloud微服务中分布式锁的死锁问题与状态一致性维护:避免循环依赖、公平锁及超时重试机制在Redisson中的实践运用 03-19 HBase性能测试与RegionServer配置、架构及数据模型调优实践:关注响应时间、并发处理能力与BlockCache优化 03-14 jquery控制radio触发事件 02-15 简约HTML5软件营销业务公司网站模板 02-09
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"