当前位置: 首页 > news >正文

广州天河 网站建设上海招标网站

广州天河 网站建设,上海招标网站,创立外包网站,广州万网建网站Docker基础入门#xff1a;常规软件安装与镜像加载原理 一、Docker常规软件安装1.1、部署nginx1.2、部署tomcat1.3、部署elasticsearch1.4、如何部署kibana--连接elasticsearch1.5、部署可视化工具 二、 镜像加载原理2.1、镜像是什么2.2、Docker镜像加速原理2.3、分层理解… Docker基础入门常规软件安装与镜像加载原理 一、Docker常规软件安装1.1、部署nginx1.2、部署tomcat1.3、部署elasticsearch1.4、如何部署kibana--连接elasticsearch1.5、部署可视化工具 二、 镜像加载原理2.1、镜像是什么2.2、Docker镜像加速原理2.3、分层理解 The Begin点点关注收藏不迷路 一、Docker常规软件安装 1.1、部署nginx 1、拉取nginx镜像 [rootzyl-server ~]# docker pull nginx Using default tag: latest latest: Pulling from library/nginx a2abf6c4d29d: Pull complete a9edb18cadd1: Pull complete 589b7251471a: Pull complete 186b1aaa4aa6: Pull complete b4df32aa5a72: Pull complete a0bcbecc962e: Pull complete Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest [rootzyl-server ~]# 2、查看镜像 [rootzyl-server ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.234.10:5000/centos 1.2 d0a52e21dd65 20 hours ago 231MB centos 1.2 d0a52e21dd65 20 hours ago 231MB nginx latest 605c77e624dd 19 months ago 141MB registry.cn-hangzhou.aliyuncs.com/zhaohaibao/centos 7.9 5d0da3dc9764 23 months ago 231MB [rootzyl-server ~]# 3、运行nginx8011为容器外部端口80端口为容器内部nginx的端口 [rootzyl-server ~]# docker run -d --namemynginx -p 8011:80 nginx 926fd257ed887f86894e1fb3b99c2f5edda141e9fdd92c04de3255fd2b1b4973 [rootzyl-server ~]# [rootzyl-server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 926fd257ed88 nginx /docker-entrypoint.… About a minute ago Up About a minute 0.0.0.0:8011-80/tcp, :::8011-80/tcp mynginx [rootzyl-server ~]# 4、进入nginx容器 [rootzyl-server ~]# docker exec -it mynginx /bin/bash root926fd257ed88:/# ls bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root926fd257ed88:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root926fd257ed88:/# cd /etc/nginx/ root926fd257ed88:/etc/nginx# ls conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params root926fd257ed88:/etc/nginx# root926fd257ed88:/etc/nginx# 本地访问8011测试 [rootzyl-server ~]# curl localhost:8011 !DOCTYPE html html head titleWelcome to nginx!/title style html { color-scheme: light dark; } body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } /style /head body h1Welcome to nginx!/h1 pIf you see this page, the nginx web server is successfully installed and working. Further configuration is required./ppFor online documentation and support please refer to a hrefhttp://nginx.org/nginx.org/a.br/ Commercial support is available at a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p /body /html [rootzyl-server ~]# ❓ 思考每次修改nginx配置文件都需要进入容器内部十分麻烦------》引入数据卷通过路径映射在容器外部即可修改。 1.2、部署tomcat 1、下载tomcat ### --rm 用完即删一般用来测试 docker run -it --rm tomcat:9.0###这里使用这个 docker pull tomcat:9.02、运行tomcat参数说明 -p 小写 主机端口容器端口 -P 大写 随机分配端口 i 交互 t 终端 d 后台docker run -d -p 8012:8080 --namemytomcat tomcat原因tomcat默认是最小的镜像有的文件被删除了。保证最小运行环境。 解决 1、进入容器 [rootzyl-server ~]# docker exec -it mytomcat /bin/bash rootf8e5b8f57b2b:/usr/local/tomcat# ls BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf lib logs native-jni-lib temp webapps webapps.dist work rootf8e5b8f57b2b:/usr/local/tomcat# cd webapps rootf8e5b8f57b2b:/usr/local/tomcat/webapps# ls rootf8e5b8f57b2b:/usr/local/tomcat/webapps# 2、拷贝webapps.dist下的文件到webapps rootf8e5b8f57b2b:/usr/local/tomcat# cp -r webapps.dist/* webapps/ rootf8e5b8f57b2b:/usr/local/tomcat# 测试访问 ❓ 思考部署项目每次进入容器内部是不是很麻烦------》引入数据卷通过路径映射在容器外部即可修改。 1.3、部署elasticsearch ❓ 思考: es暴露端口多 es内存占用大 es的数据一般要放置到安全目录挂载 ——————怎么解决 1、下载、启动elasticsearch [rootzyl-server ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e discovery.typesingle-node elasticsearch:7.6.2 Unable to find image elasticsearch:7.6.2 locally 7.6.2: Pulling from library/elasticsearch ab5ef0e58194: Pull complete c4d1ca5c8a25: Pull complete 941a3cc8e7b8: Pull complete 43ec483d9618: Pull complete c486fd200684: Pull complete 1b960df074b2: Pull complete 1719d48d6823: Pull complete Digest: sha256:1b09dbd93085a1e7bca34830e77d2981521a7210e11f11eda997add1c12711fa Status: Downloaded newer image for elasticsearch:7.6.2 89b955d50f2fd130d2e19e4048d30a8c38c6beb1023552be2af0c49b6fbf59512、查看当前运行的镜像 [rootzyl-server ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 89b955d50f2f elasticsearch:7.6.2 /usr/local/bin/dock… 7 seconds ago Up 6 seconds 0.0.0.0:9200-9200/tcp, :::9200-9200/tcp, 0.0.0.0:9300-9300/tcp, :::9300-9300/tcp elasticsearch f8e5b8f57b2b tomcat catalina.sh run 20 minutes ago Up 20 minutes 0.0.0.0:8012-8080/tcp, :::8012-8080/tcp mytomcat 926fd257ed88 nginx /docker-entrypoint.… 57 minutes ago Up 57 minutes 0.0.0.0:8011-80/tcp, :::8011-80/tcp mynginx [rootzyl-server ~]# 3、查看当前cpu使用情况50% docker status4、测试访问elasticsearch [rootzyl-server ~]# curl localhost:9200 {name : 89b955d50f2f,cluster_name : docker-cluster,cluster_uuid : pJGBGgBpTOSEqmbG0uMUdg,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 } [rootzyl-server ~]# 5、停止elasticsearch、增加内存限制(-e ES_JAVA_OPTS-Xms64m -Xmx512m),最低占用64m内存最高占用512m内存。[rootzyl-server ~]# docker stop 89b955d50f2f 89b955d50f2f [rootzyl-server ~]# 6、再次运行 [rootzyl-server ~]# docker run -d --name myelasticsearch -p 9200:9200 -p 9300:9300 -e discovery.typesingle-node -e ES_JAVA_OPTS-Xms64m -Xmx512m elasticsearch:7.6.27、再次查看内存 [rootzyl-server ~]# docker stats 1.4、如何部署kibana–连接elasticsearch 1.5、部署可视化工具 1、portainer使用这个 docker run -d -p 8088:9000 --restartalways -v /var/run/docker.sock:/var/run/docker.sock --privilegedtrue portainer/portainer2、RancherCI/CD、持续部署、集成时再用这个什么是portainer ? portainer 是 Docker的图形化界面管理工具提供一个后台面板供我们操作 1、启动运行[rootzyl-server ~]# docker run -d -p 8088:9000 --restartalways -v /var/run/docker.sock:/var/run/docker.sock --privilegedtrue portainer/portainer Unable to find image portainer/portainer:latest locally latest: Pulling from portainer/portainer 94cfa856b2b1: Pull complete 49d59ee0881a: Pull complete a2300fd28637: Pull complete Digest: sha256:fb45b43738646048a0a0cc74fcee2865b69efde857e710126084ee5de9be0f3f Status: Downloaded newer image for portainer/portainer:latest 99974acec5857c8559b5230e5c76063a82346a0e986780582ea6a40a7f62628c [rootzyl-server ~]# 2、访问测试http://192.168.234.10:8088二、 镜像加载原理 2.1、镜像是什么 镜像是一种轻量级、可执行的独立软件包用来打包软件运行环境和基于运行环境开发的软件它包含运行某个软件所需的所有内容包括代码、运行时、库、环境变量和配置文件。 所有的应用直接打包docker镜像就可以直接跑起来 如何得到镜像 从远程仓库下载 朋友拷贝给你 自己制作一个镜像DockerFile 2.2、Docker镜像加速原理 UnionFS联合文件系统 我们下载的时候看到的一层层就是这个 UnionFS联合文件系统Union文件系统UnionFS是一种分层、轻量级并且高性能的文件系统它支持对文件系统的修改作为一次提交来一层层的叠加同时可以将不同目录挂载到同一个虚拟文件系统下unite several directories into a single virtual filesystem。Union 文件系统是Docker 镜像的基础。镜像可以通过分层来进行继承基于基础镜像没有父镜像可以制作各种具体的应用镜像。 特性一次同时加载多个文件系统但从外面看起来只能看到一个文件系统联合加载会把各层文件系统叠加起来这样最终的文件系统会包含所有底层的文件和目录。 Docker镜像加载原型 docker的镜像实际上由一层一层的文件系统组成这种层级的文件系统UnionFS。 bootfsboot file system主要包含bootloader和kernelbootloader主要是引导加载kernelLinux刚启动时会加载bootfs文件系统在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了此时内存的使用权已由bootfs转交给内核此时系统也会卸载bootfs。 rootfsroot file system在bootfs之上。包含的就是典型Linux系统中的/dev/proc/bin/etc等标准目录和文件。 rootfs就是各种不同的操作系统发行版比如UbuntuCentos等等。 平时我们安装进虚拟机的CentOS都是好几个G为什么Docker这里才200M 对于一个精简的OSrootfs可以很小只需要包含最基本的命令工具和程序库就可以了因为底层直接用Host的kernel自己只需要提供rootfs就可以了。 由此可见对于不同的linux发行版bootfs基本是一致的rootfs会有差别因此不同的发行版可以公用bootfs。 虚拟机是分钟级容器是秒级 2.3、分层理解 分层的镜像 我们可以去下载一个镜像注意观察下载的日志输出可以看到是一层一层的在下载 思考为什么Docker镜像要采用这种分层的结构呢 最大的好处我觉得莫过于是资源共享了比如有多个镜像都从相同的Base镜像构建而来那么宿主机只需在磁盘上保留一份base镜像同时内存中也只需要加载一份base镜像这样就可以为所有的容器服务了而且镜像的每一层都可以被共享。 查看镜像分层的方式可以通过 docker image inspect命令 [rootzyl-server ~]# docker image inspect tomcat:9.0所有的Docker 镜像都起始于一个基础镜像层当进行修改或增加新的内容时就会在当前镜像层之上创建新的镜像层。 举一个简单的例子假如基于Ubuntu Linux 16.04创建一个新的镜像这就是新镜像的第一层如果在该镜像中添加Python包就会在基础镜像层之上创建第二个镜像层如果继续添加一个安全补丁就会创建第三个镜像层。 、 该镜像当前已经包含3个镜像层如下图所示这只是一个用于演示的很简单的例子。 在添加额外的镜像层的同时镜像始终保持是当前所有镜像的组合理解这一点非常重要。下图中举了一个简单的例子每个镜像层包含3个文件而镜像包含了来自两个镜像层的6个文件。 上图中的镜像层跟之前图中的略有区别主要目的是便于展示文件。 下图中展示了一个稍微复杂的三层镜像在外部看来整个镜像只有6个文件这是因为最上层中的文件7是文件5的一个更新版本。 这种情况下上层镜像层中的文件覆盖了底层镜像层中的文件。这样就使得文件的更新版本作为一个新镜像层添加到镜像当中。 Docker通过存储引擎新版本采用快照机制的方式来实现镜像层堆栈并保证多镜像层对外展示为统一的文件系统。 Linux上可用的存储引擎有AUFS、Overlay2、Device Mapper、Btrfs以及ZFS。顾名思义每种存储引擎都基于Linux中对应的文件系统或者块设备技术并且每种存储引擎都有其独有的性能特点。 Docker在Windows 上仅支持 windowsfilter一种存储引擎该引擎基于NTFS文件系统之上实现了分层和CoW[1]。 下图展示了与系统显示相同的三层镜像。所有镜像层堆叠并合并对外提供统一的视图。 特点 Docker镜像都是只读的当容器启动时一个新的可写层被加载到镜像的顶部 这一层就是我们通常说的容器层容器之下的都叫镜像层 The End点点关注收藏不迷路
http://www.zqtcl.cn/news/283325/

相关文章:

  • 云南网站建设方案专业的徐州网站开发
  • 政务服务 网站 建设方案郑州网站建设公司电话多少
  • 优化网站浏览量怎么看建设网站公司专业服务
  • php做的网站预览单产品网站建设
  • 网站文件验证上海推广网站公司
  • 如何免费申请网站外贸工艺品网站建设
  • 有名的wordpress网站网站开发企业培训
  • 中国建设银行绑定网站南宁seo如何做
  • 饮食类网站律师资格证报考条件
  • 昆明网站建设推广房源管理免费系统
  • jsp网站开发书籍环保网站 怎么做
  • 深圳营销型网站建设公司搜狗短网址生成
  • 如何优化购物网站建设广州seo公司排行
  • iis5.1 新建网站舆情系统的作用
  • 北京国互网网站建设公司东莞寮步搬家公司
  • 学校门户网站是什么意思做网站的意义大不大
  • 做网站卖酒网站内容建设的布局和结构
  • 效果图在哪个网站可以找比较好wordpress网站背景设置
  • 专业整站优化韩国设计公司网站
  • 网站建设与规划学的心得体会WordPress主题启用出现错误
  • 网站建设 资讯宁波东方论坛首页
  • 东莞网站制作有名 乐云践新郑州官方网
  • 网站开发经理具备什么知识调查问卷网站建设
  • 做购买网站企业宣传片制作拍摄
  • logo艺术字转换器徐州seo企业
  • 禹城网站建设公司湖州城市投资建设集团网站
  • 上海城乡住房建设厅网站asp网站怎么做301定向
  • 惠州免费网站建设上海家装10强名单
  • 新手学习做网站电子商务网站建设与维护实验报告
  • 网站建设制作设计推广上海职业技能培训机构