博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker学习笔记(一)
阅读量:3915 次
发布时间:2019-05-23

本文共 986 字,大约阅读时间需要 3 分钟。

何为Docker?

        Docker是基于 go 语言的云开源项目,其思想是“一次封装,处处运行”,这个是不是和 Java 的“一次编译,处处运行”很相似。所以 Java 的跨平台性很优秀,Docker 也一样,不过它是提高了整个项目的跨平台性。

        生产中很现实的一个问题,开发给了运维一个完成的项目,但是运维那边的环境与开发的不一样,可能会出现“”我这里好好的怎么到你这就不行了”的问题。Docker 就是来解决这个问题,实现软件带环境安装解决了系统、配置、数据、代码等问题,在部署集群时不必再在一个个服务器上挨个安装 jdk、tomcat、Nginx 了,只用安装已经打包好的镜像即可轻松完成部署。


Docker 三要素:仓库--容器--镜像

Docker 架构图:

  • Client终端:Docker Client通过命令行与Docker Damon通信,完成Docker相关操作,Daemon是Docker的守护进程
  • Docker Host:主机中存放着 Containers(容器)和 images(镜像)
  • Registry:仓库注册服务器也就是 Docker hub ,Docker主机从这上面拉取镜像,仓库里面存放的镜像。

简述一下 Docker 以及与虚拟机的不同

        Docker 共享宿主机内核、资源、网络和端口,有自己独立文件系统的一个轻量级的虚拟机,容器与容器之间是完全的沙箱操作,如果容器出问题,直接kill后rm完全不会影响到宿主机而且把主要文件夹(比如数据库的data目录和log目录)挂载到宿主机。

        虚拟机:模拟一个完整的操作系统,包括硬件层面,启动时间是分钟级的。

        Docker:只取精华不模拟硬件,高度浓缩版的 Linux系统,用宿主机内核,虚拟化技术。

什么是虚拟化可以参考这篇文章:


Docker 相关概念

我们来理解一下仓库、镜像、容器这三个概念。

简单理解:

  • 镜像就可以看作是一个模板
  • 容器可以看作是一个实例,类比 Java 的类和实例,容器是由模板生成的
  • 仓库保存的是镜像(image文件,即镜像文件)
  • 仓库注册服务器 Registry 包含多个仓库(公开库,私有库),一个仓库又包含多个镜像,每个镜像都有不同的标签(即版本号)
  • 一个容器运行一种服务
  • Docker 是一个 C/S 架构

没有安装 Docker 的小伙伴可以看我这一篇博客:

转载地址:http://kzprn.baihongyu.com/

你可能感兴趣的文章
分享我的写作经验
查看>>
Azure 静态 web 应用集成 Azure 函数 API
查看>>
关于.NET5在IIS中部署的几个问题总结
查看>>
Wifi6网络
查看>>
真实经历:整整一年了,他是这样从程序员转型做产品经理的
查看>>
互联网时代供应链
查看>>
WPF 使用 Expression Design 画图导出及使用 Path 画图
查看>>
使用BeetleX访问redis服务
查看>>
.NET 应用如何优雅的做功能开关(Feature Flag)
查看>>
如何踢掉 sql 语句中的尾巴,我用 C# 苦思了五种办法
查看>>
从零开始实现 ASP.NET Core MVC 的插件式开发(九) - 如何启用预编译视图
查看>>
.NET应用如何优雅的实现功能定时开关
查看>>
netcore一键部署到linux服务器以服务方式后台运行
查看>>
从 3.1 到 5.0 —— OpenReservation 更新记
查看>>
还在犹豫是否迁移.NET5?这几个项目已经上线了!
查看>>
Kuma 1.0 GA发布,70多项新功能和改进
查看>>
被 C# 的 ThreadStatic 标记的静态变量,都存放在哪里了?
查看>>
ASP.NET Core使用HostingStartup增强启动操作
查看>>
结合控制台程序和K8S的CronJob完成定时任务
查看>>
2020了,最流行的密码依旧是123456
查看>>