Docker入门概念

文章目录

容器(container:容器/集装箱)技术

  • 容器本身就是一种沙箱/盒技术
  • 其作用就是将应用所需的环境、依赖、配置等单独隔离出来
  • 容器被移动到任意机器上均不会影响内部应用的运行
  • docker就是通过go语言所实现的一种容器技术

虚拟机解决了哪些部署问题

  • 解决了硬件可能造成的系统运行环境的差异性(内存大小、操作系统差异)
  • 相对便捷的提供了系统运行环境的搭建过程(CV虚拟机配置即可)
  • 保证了系统运行时依赖版本的一致性(MySQL、Lombok等应用或插件的版本差异)

docker解决了哪些部署问题

  • docker容器是共享宿主机操作系统的,而VMware每起一个虚拟机其内部都需要一个独立操作系统(磁盘占用十几个G起步,内存也得几个G)
  • 特别注意容器的内存占用是很小的一般只有几M(因为它本质上不过是一套用于约束资源访问的隔离规范,自身不被划分任何硬件资源,容器内应用的运行还是要依赖宿主机的)
  • 容器重启所耗费时间是秒级的,而VMWare则比较慢了(涉及到操作系统的检测和加载)

docker是如何做到容器间运行时环境隔离的

  • 容器本身并不同于虚拟机拥有完整的操作系统内存划分
  • 容器是通过隔离手段(隔离应用程序的运行时环境)限制其进程的资源访问
  • 容器中主要通过Namespace、Control group、Chroot(切根)进行运行时环境隔离
    • NameSpace机制是一种资源隔离方案,在该机制下如Linux操作系统中PID、IPC、网络等全局资源就分属于各个特定的NameSpace。各个NameSpace下的资源互不干扰,如此每个NameSpace看上去就像一个独立的操作系统一样。
    • 虽然NameSpace技术可以实现资源隔离,但进程还是可以不受控的访问系统资源,如CPU、内存、磁盘、网络等,为了控制容器中进程对资源的访问,Docker采用control groups技术(也就是cgroup)控制容器中进程对系统资源的消耗,比如可以限制某个容器使用内存的上限、可以在哪些CPU上运行等等
    • 切根的意思就是改变一个程序运行时参考的根目录位置,让不同容器在不同的虚拟根目录下工作,从而相互不直接影响。

docker基本概念

  • 采用常见C/S架构------Client/demon
  • dockerfile:通过docker build生成image的脚本(指定需要哪些程序、依赖什么样的配置)
  • image:就是一个可通过docker run执行的程序
  • container:可理解为image执行后的一个进程

docker基本使用

  • docker build开发者写完dockerfile文件后通过Client命令(docker build)交由demon打包为可执行的image
  • docker run当client发送执行命令(docker run)到demon,demon找到对应image并加载到内存开始执行,执行起来该image就是一个对应容器
  • docker pull该命令就是去docker hub拉取现成image的,demon收到client的pull命令后,向docker registry发送image下载请求,下载后存放在本地
相关推荐
xexpertS39 分钟前
CI/CD 熔断机制:如何通过编排级熔断器提升开发者效率
java·linux·运维
前端Baymax1 小时前
K8s PodCrashLoopBackOff假阳性排查
云原生·容器·kubernetes
spider_xcxc1 小时前
K8s 部署学习笔记
docker·容器·kubernetes·云计算·k8s
带娃的IT创业者1 小时前
突破内存瓶颈:利用 Nvidia GPU 显存作为 Linux Swap 空间的深度实践
linux·运维·服务器·nvidia·swap·gpu显存
java_logo1 小时前
Docker Compose 部署 Apache Superset:轻松搭建开源 BI 平台
docker·开源·apache·superset·轩辕镜像·superset部署方案·docker superset
zy happy1 小时前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker
FoldWinCard2 小时前
云原生 --- lvs
运维·服务器·lvs
MXsoft6182 小时前
成熟的自动化运维平台是什么样的?
运维·数据库·自动化
酷可达拉斯3 小时前
Linux操作系统-shell编程(1)
linux·运维·服务器
j7~3 小时前
【Linux】二十四.线程篇一《一文吃透Linux线程全面解析:概念、内存管理、优缺点与用途》
linux·运维·服务器·页表·线程概念·分页式存储管理·缺页异常