Docker学习重点(4)~docker 部署环境

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Docker学习重点(4)~docker 部署环境

一、部署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 宿主机端口:容器内部端口

----接下来:

  • 进入(正在运行的)容器内部: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的问题:

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

  • 要是可以在容器外部提供一个映射路径,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


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

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
7天前
|
jenkins 持续交付 网络安全
Jenkins——使用Docker部署Jenkins详解
Jenkins——使用Docker部署Jenkins详解
19 0
|
1天前
|
应用服务中间件 Docker 容器
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
这篇文章介绍了在Docker中安装Tomcat的过程,包括搜索Tomcat镜像、拉取镜像、目录挂载的准备、创建并挂载容器,以及如何进入容器和进行测试。文中还说明了如何将WAR包部署到Tomcat服务器并访问部署的应用。
在服务器中使用Docker安装Tomcat、同时实现目录挂载、并且部署War包到服务器
|
4天前
|
JSON JavaScript 开发者
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
【8月更文挑战第7天】Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
Composerize神器:自动化转换Docker运行命令至Compose配置,简化容器部署流程
|
1天前
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
2天前
|
Ubuntu Shell Docker
在Docker环境下如何“安装”Ubuntu
【8月更文挑战第18天】在Docker环境中“安装”Ubuntu实际上是指利用Ubuntu镜像构建容器。
18 1
|
4天前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
14 0
|
5天前
|
存储 Ubuntu Linux
如何在 Ubuntu 上使用 Docker 容器化和部署多个 WordPress 应用程序
如何在 Ubuntu 上使用 Docker 容器化和部署多个 WordPress 应用程序
12 0
|
5天前
|
存储 Shell API
G6VP 与 GraphScope部署问题之拉取并启动 GraphScope 的 Docker 镜像如何解决
G6VP 与 GraphScope部署问题之拉取并启动 GraphScope 的 Docker 镜像如何解决
|
5天前
|
Linux Docker 异构计算
模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
模型部署 — PaddleNLP 基于 Paddle Serving 快速使用(服务化部署 - Docker)— 图像识别 + 信息抽取(UIE-X)
9 0
|
5天前
|
JSON 文字识别 Linux
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)
15 0