docker入门(一)

文章目录

容器docker技术的演进

我们先看看很久很久以前,服务器是怎么部署应用的!

复制代码
学习每一块新领域的知识,我的理念是

1. 学习架构,原理,为什么,清晰你为什么要学,以及能解决你什么问题
(阶段1,为什么学)
(阶段3,回头继续看书,如今时代,已经遍地是成体系化的知识框架,已经很方便学习了,深入原理性学习)
2. 学习命令使用(阶段2,如何用)

物理机,发展到虚拟化时代的过程

物理机部署架构 v1

虚拟化部署架构 v2

容器部署架构 v3

物理机 > 虚拟化 > 容器化

复制代码

1.为什么学docker

Openstack

kvm

docker的诞生

复制代码
Docker 公司位于旧金山,原名dotCloud,底层利用了Linux容器技术(LXC)(在操作系统中实现资源隔离与限制)。


为了方便创建和管理这些容器,dotCloud 开发了一套内部工具,之后被命名为"Docker"。
Docker就是这样诞生的。

Hypervisor: 一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件 。常见的VMware的 Workstation 、ESXi、微软的Hyper-V或者思杰的XenServer。

Container Runtime:通过Linux内核虚拟化能力管理多个容器,多个容器共享一套操作系统内核。因此摘掉了内核占用的空间及运行所需要的耗时,使得容器极其轻量与快速。


LXC  >  Libcontainer(创建一个隔离的,独立的namespace,也就是容器实例)

红帽官网的文章,容器技术
https://www.redhat.com/zh/topics/containers/whats-a-linux-container

图解名称空间三大块,进程,网络,文件系统吗,实现的资源隔离

复制代码
文件系统下,文件不得重复


/usr/local/sbin/python3


/usr/local/sbin/python3.6 业务1  

/usr/local/sbin/python3.9  业务组2

2.容器技术(发展)

复制代码
LXC  >  Libcontainer(创建一个隔离的,独立的namespace,也就是容器实例)

红帽官网的文章,容器技术
https://www.redhat.com/zh/topics/containers/whats-a-linux-container

linux容器,和docker(golang),和如何用的本质流程

docker由来

docker为什么能实现多环境 的一致性部署,以及快速发布

基于虚拟机,源码,jenkins多环境发布

基于虚拟机模板发布

-----互联网公司,基于docker的快速发布,更新模式-------

基于容器实现环境一致性发布

3.容器和虚拟机的差异

传统虚拟机,架构图

容器,架构图

容器技术对比虚拟化

4.为什么选择docker

docker更高效的利用系统资源

更快的启动时间

一致性的环境

持续交付和部署

更轻松的迁移

docker能做什么

docker使用情况

企业与容器集群

京东容器集群

淘宝容器集群

5.Docker架构

用docker前运维难题

用docker后的运维架构

前提是,你们的开发、运维都好好的学习了docker技术,否则docker带来的,是更复杂的维护成本。

基于docker的软件交付流程

docker引擎架构

复制代码
架构层级图

Docker Daemon

安装使用Docker,得先运行Docker Daemon进程,用于管理docker,如:

  • 镜像 images
  • 容器 containers
  • 网络 network
  • 数据卷 Data Volumes

Rest接口

提供和Daemon交互的API接口

写代码,直接和docker主进程交互,对容器管理。

Docker Client

客户端使用REST API和Docker Daemon进行访问。

运维常用的docker维护命令。

Docker组件工作流

复制代码
绘图理解

镜像(模板)
↓
容器(运行机器实例)


要清楚虚拟机,容器的区别。

Images

Container

Registry

深入docker底层原理(docker学完后,回过头在看)

namespace

cgroup

相关推荐
北执南念12 分钟前
项目代码生成工具
java
中国lanwp18 分钟前
springboot logback 默认加载配置文件顺序
java·spring boot·logback
cherishSpring29 分钟前
在windows使用docker打包springboot项目镜像并上传到阿里云
spring boot·docker·容器
LKAI.34 分钟前
k8s存储动态供给StorageClass
docker·微服务·云原生·容器·kubernetes
苹果酱05671 小时前
【Azure Redis 缓存】在Azure Redis中,如何限制只允许Azure App Service访问?
java·vue.js·spring boot·mysql·课程设计
Java致死1 小时前
单例设计模式
java·单例模式·设计模式
胡子发芽1 小时前
请详细解释Java中的线程池(ThreadPoolExecutor)的工作原理,并说明如何自定义线程池的拒绝策略
java
沫夕残雪1 小时前
Tomcat的安装与配置
java·tomcat
胡子发芽2 小时前
请解释Java中的NIO(New I/O)与传统I/O的区别,并说明NIO中的关键组件及其作用
java
柚个朵朵2 小时前
IDEA中使用Git
java·git·spring