java容器有哪些软件_Java 容器化技术Docker:(一)Docker 简介

Docker 简介

1.什么是 Docker

2.Docker 和 VM 的对比

2.1 结构区别

2.2 应用区别

3.Docker 特点

3.1 效率高

3.2 职责明确

3.3 结构完整

3.4 契合微服务架构

4.Docker 架构

4.1 Docker daemon(Docker 守护进程)

4.2 Client(Docker 客户端)

4.3 Images(Docker 镜像)

4.4 Container(容器)

4.5 Registry(仓库)

1.什么是 Docker

Docker 是基于 Go 语言实现的开源容器项目。利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。它是内核级的虚拟化。期望达到使项目运行环境“一次封装,到处运行的目的”

利用 docker 创建的运行环境叫做 docker 容器,容器是通过 docker 镜像创建的,docker 镜像文件可以放在私有仓库中也可以放在共有仓库中

官网地址

2.Docker 和 VM 的对比

2.1 结构区别

8a67123e239753f4e1b92ec5455c9cc6.png

2.2 应用区别

85a0e384cdf3167781f027f16a577608.png

Docker:面向内核、软件,docker 是秒级别的

虚拟机:面向硬件的,分钟级别

ff7da7aefdc08097af7866e79c6401f1.png

3.Docker 特点

3.1 效率高

用户只需要几分钟,就可以把自己的程序“Docker 化”。Docker 依赖于“写时复制”(copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心所致,代码即改” 的境界。

随后,就可以创建容器来运行应用程序了。大多数 Docker 容器只需要不到 1 秒中即可启动。由于去除了管理程序的开销,Docker 容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户尽可能的充分利用系统资源。

3.2 职责明确

使用 Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生产环境一致性。

从而降低那种“开发时一切正常,肯定是运维的问题(测试环境都是正常的,上线后出了问题就归结为肯定是运维的问题)

3.3 结构完整

Docker 的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用程序具备可移植性,易于构建,并易于协作。(通俗一点说,Docker 就像一个盒子,里面可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,而不需要从该盒子中一件件的取。)

3.4 契合微服务架构

Docker 还鼓励面向服务的体系结构和微服务架构。Docker 推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中运行多个应用程序)

4.Docker 架构

15fe1b22b5508ae7e301f124694a8fba.png

4.1 Docker daemon(Docker 守护进程)

Docker daemon 是一个运行在宿主机(DOCKER_HOST)的后台进程。我们可通过 Docker 客户端与之通信。

4.2 Client(Docker 客户端)

Docker 客户端是 Docker 的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon 通信。图中,docker build 等都是 Docker 的相关命令。

4.3 Images(Docker 镜像)

Docker 镜像是一个只读模板,它包含创建 Docker 容器的说明。它和系统安装光盘有点像——我们使用系统安装光盘安装系统,同理,我们使用 Docker 镜像运行 Docker 镜像中的程序。

4.4 Container(容器)

容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。我们可通过 Docker API 或者 CLI 命令来启停、移动、删除容器

4.5 Registry(仓库)

Docker Registry 是一个集中存储与分发镜像的服务。我们构建完 Docker 镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,我们就需要手动拷贝。此时,我们可借助 Docker Registry 来避免镜像的手动拷贝

一个 Docker Registry 可包含多个 Docker 仓库;每个仓库可包含多个镜像标签;每个标签对应一个 Docker 镜像。这跟 Maven 的仓库有点类似,如果把 Docker Registry 比作 Maven 仓库的话,那么 Docker 仓库就可理解为某 jar 包的路径,而镜像标签则可理解为 jar 包的版本号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值