Docker操作相关思考题

简介: Docker操作 (七)

思考题
1.我们部署项目,如果每次都要进入容器很麻烦,我们可以在容器外部提供一个映射路径,webapps,我们在外部部署项目,就自动同步到内部就好了。

作业:部署es+kibana
# es 暴露的端口很多
# es 消耗内存资源
# es 的数据一般需要放置到安全目录,挂载
# --net somenetwork ? 网络配置
# 启动elasticsearch
$ docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
# 启动了 linux卡住了 docker stats查看cpu的状态
# es 十分消耗内存
# 测试一下es是否成功
[root@localhost ~]# curl localhost:9200
{
   
  "name" : "5506ccc49024",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "838u-pJUScaq1g3sKs21ZQ",
  "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"
}
# 增加内存的限制,修改配置文件 -e 环境配置修改 , 64m最小  512m最大
[root@localhost ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

作业:使用kibana连接elasticsearch
可视化
portainer(先用这个)

[root@localhost ~]# docker run -d -p 8088:9000 \ 
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

Rancher(CI/CD再用)
什么是portainer?
Docker图形化界面管理工具,提供一个后台面板供我们操作。

[root@localhost ~]# docker run -d -p 8088:9000 \ 
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

访问测试:外网8088
http://ip:8088

可视化面板平时不会使用,可以测试玩玩。
Docker镜像讲解:
镜像是什么?
镜像就是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

所有应用,直接打包docker镜像,可以直接运行、部署。

如何得到镜像:

从远程仓库下载
从别人那拷贝过来
自己之作一个镜像DockerFile文件
Docker镜像加载原理
UnionFS(联合文件系统)

我们下载的时候看到的一层一层就是这个。

UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。Union 文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。

bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存使用权限已由bootfs转交给内核,此时系统也会卸载boots。

黑屏—加载—开机进入系统

Roots(root file system),在bootfs之上,包含的就是典型的Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Cenos等

虚拟机是分钟级启动,容器是秒级。

分层理解
理解:
所有的Docker镜像都起始于一个基础镜像层,当进行修改或增加新的内容时,就会在当前镜像层之上,创建新的镜像层。例如:基于Ubuntu Linux 16.04创建一个新的镜像,这就是新镜像的第一层;如果在该镜像中添加Python包,就会在基础镜像层之上创建第二个镜像层;如果继续添加一个安全补丁,就会创建第三个镜像层。

特点:

Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部。这一层就是我们通常说的容器层,容器之下的都叫镜像层。

commit镜像

docker commit 提交容器成为一个新的副本
# 命令和git原理类似
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

实战测试

# 1、启动一个默认的tomcat
# 2、发现这个默认的tomcat没有webapps应用,镜像的原因,官方的镜像默认是webapps下面没有任何文件的
# 3、然后我们从webapps.dist文件夹拷贝过去
# 4、将我们操作过的容器通过commit提交为一个镜像,以后我们就直接使用这个修改过的镜像即可。如下图:

image.png

理论联系实际,切记要实际操作一下!

#如果想要保存当前容器的状态,就可以通过commit来提交,获得一个新的镜像。我的理解类似于vm快照功能。
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
C语言 Perl 存储
优化求解器之MPS文件的格式简介
在使用MindOpt优化求解器解决实际问题时,其中重要的一环在于如何建立优化模型,以及存储优化模型以便于作为求解器的输入文件。存储优化模型的文件,其关键在于定义一种清晰的格式,用来说明优化模型的数学结构和相关的数据。接下来我们将发布一系列文章,对常见的MPS/LP等格式的模型文件和命名规范进行简要的介绍。
优化求解器之MPS文件的格式简介
|
弹性计算 Ubuntu Linux
2024年阿里云幻兽帕鲁/Palworld自建服务器教程(新手攻略)
最近,幻兽帕鲁这款游戏在全球范围内掀起了一股热潮,其火爆程度可谓前所未有。短短几天内,同时在线人数已经突破了惊人的200万,这无疑给游戏厂商带来了巨大的压力。由于玩家数量激增,游戏服务器承受了前所未有的负载,导致游戏出现了严重的延时、掉线等问题,给玩家们的游戏体验带来了不小的困扰。
|
数据可视化 图形学
小功能⭐️Unity2018 Shader Graph——全息影像、物体消融
小功能⭐️Unity2018 Shader Graph——全息影像、物体消融
|
前端开发 UED
CSS动画效果(炫酷登录页面)
CSS动画效果(炫酷登录页面)
|
SQL 数据库 HIVE
hive宽表窄表互转
hive宽表窄表互转
|
SQL 缓存 安全
深入PHP:构建高效Web应用的实用技巧
【10月更文挑战第4天】在动态网站开发领域,PHP以其易用性和灵活性广受欢迎。本文将引导你通过实用的PHP技巧来提升Web应用的性能和安全性。我们将探讨从数据库优化到代码组织的多个方面,并配以实例代码,让你能够在实际项目中立即应用这些知识。文章的目的是让PHP开发者能够在不牺牲代码可读性和维护性的前提下,编写出更快、更安全的应用程序。
|
存储 弹性计算 开发工具
基于OSS搭建个人云上博客
九步助你搭建个人云上博客
|
编解码 算法 Java
|
小程序 API
微信小程序登录授权流程及所用API
微信小程序登录授权流程及所用API
536 0
|
消息中间件 NoSQL Java
【操作系统】生产环境消失的进程如何排查
【操作系统】生产环境消失的进程如何排查
【操作系统】生产环境消失的进程如何排查