原 Docker简介
1332 | 0 | 0
1.编写代码,修改代码
2.提交代码到git/svn/gitlab
3.jenkins自动检测到git/gitlab/svn代码更新,从git/gitlab/svn拉取最新代码
4.jenkins自动编译
5.jenkins自动打成能运行的war/jar包或者其他语言可以运行的对应的包
6.jenkins自动上传可以运行的包到docker宿主机目录
7.jenkins自动构建web容器镜像,包含项目代码demo
8.jenkins自动启动镜像,编程容器,映射端口
9.最后就有项目运行界面
10.测试人员可以安装这种运行在测试服务器进行测试
12.运维人员就可以用同样的部署运行在生成服务器上面
docker 的广泛使用和docker的好处
1)区分开发 测试 运维的分工,出现问题不会互相推卸责任
2)可以合理利用服务器资源,不会像vmware的使用那么庞大
3)可以快速使用docker实现mysql redis nginx 的机器和负载均衡
4)方便实现自动化部署
5)k8s
docker目标
掌握Docker基础知识,能够理解docker镜像和容器的概念
完成docker安装和启动
掌握docker镜像与容器相关的命令
掌握Tomcat mysql nginx等软件的部署
掌握docker迁移和备份相关的命令
能够运行dockefile编写创建容器的脚本
虚拟化
在计算机中,虚拟化是一种资源管理技术,是讲计算机各种实体资源,比如服务器,网络,内存以及存储等,给与抽象,转换后呈现出来,打破实体机构间的不可分割的障碍,使用户可以比原来更好的利用这些资源,这些资源的新虚拟部分是不受现有的资源的架设方式,地域或者物理状态的限制,一般所指的虚拟化资源包括计算能力和存储能力。
在实际生产中,虚拟技术主要解决高性能的物理硬件过剩和老的旧的设备硬件能力过低的重新组装使用,透明化底层物理硬件,从而最大化的利用物理硬件对资源充分利用
虚拟化技术包括:软件虚拟化,内存虚拟化 硬件虚拟化 网络虚拟化 桌面虚拟化 服务虚拟化 虚拟化等
什么是docker
docker是一个开源的项目,是在2013年,最初由dotcloud公司内部的一个业余的项目发展起来的,它基于google公司推出go语言实现的,docker项目加入linux基金会,遵循了apche2.0协议,项目公布在github上面。
docker项目目标是实现轻量级的操作系统虚拟化解决方案,docker的基础是linux容器(LXC)技术
在LXC基础上docker进行了进一步开发,让用户不需要关心容器的管理,使用户操作简单,用户操作docker就像操作一个快速轻量级的虚拟机一样简单。
为何选择docker
(1)上手快
用户只需要几分钟,就可以把自己的程序“docker化”,随后,就可以创建容器来运行程序。大多数docker容器只需要1秒就可以启动。由于去除了管理程序开销,docker容器拥有很高的性能,同时一台宿主机可以运行多个容器,使用户可能的利用系统资源
(2)职责划分明确
使用docker,开发人员只需要关心容器中运行的程序,而运维人员只需要关心如何管理容器。docker设计目的就是要加强开发人员写代码的开发环境与应用部署的环境要一致。从而降低那种“开发时一切正常,肯定是运维的问题(测试是正常的,上线后出现了就归结于运维问题)”
(3)快速高效的生命周期
docker的目标之一,就是缩短代码开发测试部署,上线运行的周期,让你的程序具备可移植性,易于构建,并易于协作(通俗讲,docker就像一个盒子,里面可以装很多物件,如果需要这些物件可以直接从盒子里拿走,而不要从该盒子一件件去取)
(4)鼓励使用面向服务架构
docker鼓励使用微服务,docker推荐单个容器只运行一个应用程序或者进程。这就形成了一个分布式的应用程序模型。在这种模型下,应用程序和服务可以表示为一系列的互联容器(可以在一个容器里运行多个程序)
容器和虚拟化比较
上图比较了docker和传统的虚拟机不同之处,可以见容器在操作系统层次上虚拟化,直接复用本地的操作系统,而传统的方式则在硬件上实现。与传统的相比,docker优势在于启动快,体积小。
推荐阅读:https://www.roncoo.com/search/docker
0
135****3683
13人已关注
领课教育 29661
7869
update 44014
3640
领课教育 16153
husheng 19293
请更新代码 40248
凯哥Java 814
凯哥Java 715
凯哥Java 644