app开发者平台在数字化时代的重要性与发展趋势解析
926
2022-11-18
Docker入门1(CICD 插曲)
1、Docker核心概念
1.1 Docker设计目标(Docker思想来源于集装箱):
1)提供简单的应用程序打包工具(将应用打包,放在其他地方可以运行)
2)开发人员和运维人员职责逻辑分离;
现开发人员工作:
开发项目打包项目环境+代码 成镜像部署到容器平台
运维人员工作:怎么高效的去管理这些容器,比如:监控、日志、怎么开发出傻瓜工具方便自动化部署。
好处:
运维人员节省人工成本持续发布有问题更快解决,更好服务开发人员
3)(开发环境、测试环境、生产环境)多环境保持一致性
1.2 容器VS虚拟机:
容器之间的隔离是抽象隔离,是逻辑隔离,可以理解为电脑中进程之间的隔离;虚机之间的隔离是用操作系统进行了隔离。容器应该主要是解决应用层面的问题,虚拟机应该主要解决基础资源的问题。
1.3 Docker应用场景:
1)应用程序打包和发布
2)应用程序隔离
3)持续集成
4)部署微服务(将大的服务拆分成很多小的微服务,小的服务独立部署,独立数据库,升级时升级小服务就好,影响面小)
5)快速搭建测试环境(直接拉镜像,启动即可)
6)提供PaaS产品(平台即服务)
1.4 Docker安装:
分为企业版与社区版,这边安装社区版。
先看一下机器内核版本,再根据版本选择安装:
安装前最好先关防火墙(主要是关闭一些默认规则):
启动Docker:
# systemctl start docker
查看安装是否成功:
# docker info 查看信息
安装没问题后,设置一下开机自启动:
# systemctl enable docker
2、Docker镜像管理
2.1 镜像是什么
一个分层存储得文件,不是一个单一得文件一个软件得环境一个镜像可以创建N个容器一种标准得交付一个不包含Linux内核而又精简得Linux操作系统
可以理解为一个压缩包,包含了基础运行环境与源代码。
2.2 镜像从哪里来
因为是在线拉,且dockerhub地址在国外,所以可以根据需求先配置镜像加速器(实则就是配置一个国内得镜像仓库,而这个镜像仓库永远与dockerhub同步):
# vi /etc/docker/daemon.json (默认没有这个文件,直接VI创建写入)
保存后重启docker生效,如果docker因此有问题,肯定是文件内容写错了,英文下得标点符号。
2、可以本地/私有镜像仓库
2.3 镜像与容器的联系
容器是通过镜像创建的运行实例。一个镜像可以启用多个容器,多个容器之间是隔离的。
2.4 管理镜像常用命令
2.4 镜像存储核心技术:联合文件系统(UnionFS)
创建很多容器,却不怎么消耗磁盘空间,这是为什么?
创建一个容器,其实只是将基础镜像进行软链接(类似),所以只要容器中不加内容,即使基于一个镜像创建上百个容器,也不怎么影响磁盘空间。
比如右图中,基础镜像中file2修改,其实只是将file2复制到容器层,进行修改。
综上:
读文件:容器层->镜像层
修改文件:容器层->镜像层(从镜像层复制到容器层)
3、Docker容器管理
3.1 创建容器常用选项
# docker container exec -it 编号 bash
3.2 容器资源限制
默认创建的容器,使用宿主机所有资源,谁先抢到谁占用。
3.3 容器资源配额的扩容
docker update 更新容器配置
已创建的,修改配置,只支持部分修改。具体可以docker update --help
3.4 管理容器常用命令
3.4 容器实现核心技术:Namespace、CGroups
3.5 Docker核心组件之间关系
4、容器数据持久化
4.1 将数据从宿主机挂载到容器中的三种方式
根据2.4节所讲,容器删除,里面的数据就没有了。但是有时候容器中有些数据很重要,需要持久化(容器删除,数据还在)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~