Docker学习笔记一——Docker快速入门

1.Docker简介[官网]

Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托管在 GitHub 上, 基于Go语言并遵从Apache2.0协议开源。

Docker是通过内核虚拟化技术(namespacescgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。

  • Docker是使用Go语言写的一个基于LXC技术的开源产品

Docker学习笔记一——Docker快速入门



2.Docker的三大理念

  • 构建:在开发、测试、运维中基于整个环境的构建

JAVA:一次编译,到处运行(基于JVM,代码级别)
Docker:一次构建,到处运行(基于容器,运行环境+代码)
Docker可以提供组装好的运行环境和代码,将PASS层和SASS层紧密结合起来。

  • 运输:可以把构建好的镜像放在任何地方

  • 运行:灵活组装,整体交付

 Docker适用环境:频繁变更的业务和产品线

Docker学习笔记一——Docker快速入门



3.Docker组成部分

3.1 Docker架构 

  • 基于C/S架构:Docker Client 和 Docker Server

Docker Client:执行Docker命令
Docker Server:Docker启动的内核进程
Docker服务端挂了,运行在上边的容器就会都挂掉,这个问题目前还没有解决!

Docker学习笔记一——Docker快速入门

Docker总架构图(详解点我!)



3.2 Docker三大组件:镜像(Image)、容器(Container)、仓库(Repository)

  • 镜像(Image)

类似虚拟机镜像,作用一样,但组成部分不一样,要启动一个Docker容器,必须有镜像,跟KVM启虚拟机一样。

  • 容器(Container)

Docker是用容器来运行业务的,从镜像创建一个实例提供服务,可以对容器进行启动、关闭、删除等,与虚拟机类似,但容器是隔离的,不是虚拟的,这是与虚拟机最大的区别。

  • 仓库(Repository)

存Docker镜像的仓库,镜像创建完了放入仓库里边集中式管理,便于网络访问运输。OpenStack里边的Glance组件就是一个镜像仓库,类似仓库还有DockerHub、GitHub。

Docker学习笔记一——Docker快速入门



4.Docker和虚拟机的区别

  •  Docker与虚拟机技术差异

虚拟机需要运行一个Hypervisor环境,而Docker容器是全部跑在Docker引擎里边,没有操作系统层。Docker无法做到和虚拟机一样完全隔离

Docker学习笔记一——Docker快速入门


  • Docker与虚拟机差异对照(赵班长整理)

Docker学习笔记一——Docker快速入门

  •  注意

Docker容器必须在前台启动一个进程,如果这个进程挂了,Docker容器就退出了,生产中可以使用脚本启动多个进程。
Docker理念:允许容器挂掉,挂了再起,建议容器运行单进程,一个容器干一种活。


5.Docker的作用

  1. 简化配置:把运行环境和代码直接一起放在容器里,简化配置、降低环境的依赖性

  2. 代码流水线管理:使用Docker将开发、测试、生产流水线管理,保持一致性

  3. 提高开发效率:直接拉镜像运行,无需重复配置复杂的开发环境

  4. 应用隔离:一般般,没虚拟机好

  5. 整合服务器:一台机器启多个容器,降低成本,提高资源利用率,与虚拟机类似

  6. 调试能力:没啥优势

  7. 多租户模式:同上

  8. 快速部署:比虚拟机快

Docker学习笔记一——Docker快速入门


6.Docker生产应用总结

  • 面向产品:产品交付

  • 面向开发:简化环境配置

  • 面向测试:多版本测试

  • 面向运维:环境一致性

  • 面向架构:自动化扩容(微服务)

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/1263.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注