当前位置: 首页 > news >正文

Docker实战-第一章欢迎来到Docker世界

Docker基础

什么是Docker

docker是包括一个命令行程序、后台守护进程和一组远程服务,它简化了安装、运行、发布和删除软件的工作。docker实现的基础是UNIX的容器技术。所以在docker出世之前已经有容器的概念,而且像谷歌一类公司也在探索自己的容器,docker将容器技术提供了更为简便的容器实现。

什么是容器

容器是指隔离应用程序与外部资源的运行环境。最开始使用容器仍需要手动配置,非常容易出错。docker基于现有容器引擎,根据最佳实践提供了一致的docker构建方案。

docker与容器的关系

docker不提供容器技术,但使用docker可以更方便的得到一个容器,docker构建的容器也称为docker容器。

容器与虚拟化的区别

虚拟化是利用虚拟机提供虚拟硬件,然后安装操作系统和发布软件,两个虚拟机之间的操作系统互相隔离。docker不需要虚拟硬件和安装操作系统,所以拉起特别快。docker容器里的应用程序还是直接运行在主机上,docker只是利用Linux的NameSpace和Cgroups技术做了隔离与限制的“障眼法”。
在这里插入图片描述
Hypervisor:硬件虚拟化层
Docker Engine:docker引擎

容器的隔离

容器的隔离包括8个方面

  • PID命名空间——进程标识符和能力
  • UTS命名空间——主机名与域名
  • MNT命名空间——文件系统访问和结构
  • IPC命名空间——通过共享内存的进程间通信
  • NET命名空间——网络访问和结构
  • USR命名空间——用户名和标识
  • chroot()——控制文件系统根目录位置
  • cgroups——资源保护,限制进程组使用的cpu内存上限

docker容器镜像分发

容器的隔离与限制是由linux的Namespace、cgroups和chroot实现的,那docker解决了什么问题呢?实际上docker解决的容器的打包、分发、运行,这些也是最困扰开发者的事情。正因如此,docker对开发者友好,让他受到了更多地青睐。

http://www.lryc.cn/news/170342.html

相关文章:

  • 初识C语言——详细入门一(系统性学习day4)
  • python 学习笔记(6)—— Flask 、MySql
  • Deepin下vsftp服务安装配置虚拟用户
  • OpenpyxlWriter‘ object has no attribute ‘save‘
  • ES6(三)
  • Android 数据库封装(SQLite)
  • Git从入门到起飞(详细)
  • R读写parquet文件
  • Java21 LTS版本
  • 【性能优化】虚拟懒加载(下拉滚动加载长列表)element-puls+el-table
  • 一对多映射处理
  • 关于IDEA没有显示日志输出?IDEA控制台没有显示Tomcat Localhost Log和Catalina Log 怎么办?
  • 蛇形填数 rust解法
  • 一文探索SD-WAN技术进阶后与MPLS的区别
  • RocketMq(四)消息分类
  • ip地址怎么改网速快
  • 植物大战僵尸各种僵尸攻略(四)
  • main函数中两个参数的作用
  • 华为OD机试 - 连续字母长度 - 字符串(Java 2023 B卷 100分)
  • 想要精通算法和SQL的成长之路 - 填充书架
  • 【ROS入门】ROS的核心概念
  • Python爬虫从端到端抓取网页
  • 这10款类似Stable Diffusion的ai绘图软件,你了解多少?
  • 部署ik分词器
  • 基于STM32+华为云IOT设计的智能垃圾桶
  • 板子接线图
  • Python练习之选择与循环
  • MySQL5.7开启通用日志功能
  • WPF控件模板
  • vue移动端页面适配