推荐教程:https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0&vd_source=642a988fd50073c667fec7829ca79103
Docker技术入门与实战-第3版.pdf
dokecr为什么会出现?
一款产品:开发--上线 开发环境 应用环境 应用配置
开发........运维 。 问题 :我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维人员的考核压力大。
环境的配置十分麻烦,每一个机器都要环境配置(集群Reds、ES、Hadoop),费时费力。
发布一个项目(jar +(Reds、Mysql、jdk、ES)),实现项目环境的安装打包.。实现环境的跨平台,简化配置
传统方式:
- 传统 开发jar 运维来做
- 开发打包上线 一套流程
java --apk --发布(应用商店) ----用户使用应用 ------安装即可使用
java ---jar(环境) ---打包项目带线上环境 --(Docker仓库 、应用商店) ----下载即可使用
Docker给以上问题的,提出了相关的解决方案
Docker的思想来源于集装箱
JRE ...多个应用(端口冲突) --原来是交叉的
隔离: docker核心思想;打包装箱;每个箱子都是相互隔离的
dokcer通过隔离技术,将服务器利用到极致
Docker的历史
2010年 几个搞it的年轻人,就在美国成立了一家公司dotcloud,做一些pass的云计算服务,LXC相关的技术,将容器化进行了统一的简化命名docker
dokcer 刚刚诞生的时候,没有引起行业的注意,dotcloud的活不下去,进行源代码的开放
2013年,docker开源,越来越多人发现docker的优点,docker每个月都会更新一个版本。
2014年4月9日,docker 1.0 发布 ,解决了通过软件虚拟化一台或多台设备臃肿、笨重的问题,
docker容器技术也属于虚拟技术
linux centos系统镜像(一个电脑) 隔离,需要多个虚拟机,几个G,几分钟
docker,隔离,镜像(最核心的镜像),十分小巧,运行镜像就可以了,秒级启动
docker基于GO语言开发,开源项目
官网:https://www.docker.com/
官方文档网址:https://docs.docker.com/
docker仓库:https://www.docker.com/products/docker-hub/
docker能干嘛
传统虚拟机技术
虚拟机技术缺点:
- 资源占用多
- 冗余过多
- 启动慢
容器化技术
比较docker和虚拟机的不同
- 传统的虚拟机,虚拟出一个硬件,然后在系统上运行软件
- 容器内的应用直接运行在宿主机上的内容,也没有虚拟化硬件,所以轻便了
- 每个容器之间是相互隔离的,每个容器内都有自己的文件系统,互不影响
devops(开发、运维)
更快速的交付和部署,
传统:堆帮助文档、安装程序
docker:打包镜像发布测试、一键运行
更快捷的升级和扩容
使用了 docker之后,应用部署和搭积木一样,项目打包为一个镜像、扩展服务器A 服务器B
更简单的系统运维
在容器化之后,开发和测试环境都是高度一致的
更高效的计算机资源利用
docker是内核的虚拟化,可以在一个物理机上运行多个实例,服务器的性能发挥到机制