docker入门详解!!!

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本文介绍了容器技术的发展历程,从物理机到虚拟化再到容器化,重点讲解了Docker的诞生及其优势。Docker通过轻量级的容器技术,实现了资源的高效利用、快速启动、环境一致性、持续交付和部署等优点。文章还详细解析了Docker的架构和工作原理,包括Docker Daemon、REST接口、Docker Client等组件,以及容器与虚拟机的差异。

[TOC]

容器docker技术的演进

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

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

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

1661739957898

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

1661741048051

物理机部署架构 v1

虚拟化部署架构 v2

容器部署架构 v3

物理机 > 虚拟化 > 容器化


1.为什么学docker

1661742007364

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

1661745870488

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

文件系统下,文件不得重复


/usr/local/sbin/python3


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

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

1661743582973

2.容器技术(发展)

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

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

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

1661744436996

docker由来

1661746252786

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

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

1661746776351

基于虚拟机模板发布

1661747187655

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

1661748992778

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

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

相关文章
|
25天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
80 2
|
2月前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【10月更文挑战第2天】本文将带你走进云原生的世界,从基础的Docker容器技术开始,逐步深入到Kubernetes集群管理。我们将通过实际代码示例,探索如何利用这些工具构建、部署和管理现代云应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和技能,让你在云原生领域迈出坚实的一步。
89 5
|
2月前
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
19天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
27天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
1月前
|
Kubernetes Cloud Native 开发者
云原生技术入门:Kubernetes和Docker的协作之旅
【10月更文挑战第22天】在数字化转型的浪潮中,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,引领读者步入云原生的世界,着重介绍Kubernetes和Docker如何携手打造弹性、可扩展的云环境。我们将从基础概念入手,逐步深入到它们在实际场景中的应用,以及如何简化部署和管理过程。文章不仅为初学者提供入门指南,还为有一定基础的开发者提供实践参考,共同探索云原生技术的无限可能。
49 3
|
2月前
|
Ubuntu Shell 开发者
Docker入门:轻松开始容器化之旅
【10月更文挑战第17天】Docker 是一种开源的应用容器引擎,它让开发者能够“一次构建、到处运行”。Docker 通过容器化技术将应用程序及其依赖打包在一起,从而确保应用在任何环境中都能一致地运行。本文将为新手用户提供一个全面的Docker入门指南,包括基本概念、优势、安装配置以及如何创建和管理容器。
53 2
|
2月前
|
存储 运维 云计算
探索Docker容器化:从入门到实践
在这个快速发展的云计算时代,Docker容器化技术正在改变应用的开发、部署和管理方式。本文旨在为初学者提供一个关于Docker的全面入门指南,并通过实践案例展示Docker在实际开发中的应用。我们将一起了解Docker的核心概念、基本操作、网络和存储,以及如何构建和部署一个简单的Web应用。无论你是开发者还是运维人员,本文都会帮助你快速掌握Docker的核心技能。
|
2月前
|
Kubernetes Cloud Native Docker
云原生入门:Kubernetes和Docker的协同之旅
【10月更文挑战第4天】在这篇文章中,我们将通过一次虚拟的旅行来探索云原生技术的核心——Kubernetes和Docker。就像乘坐一艘由Docker驱动的小船启航,随着波浪(代码示例)起伏,最终抵达由Kubernetes指挥的宏伟舰队。这不仅是一段技术上的旅程,也是理解现代云架构如何支撑数字世界的冒险。让我们扬帆起航,一探究竟!
|
2月前
|
Ubuntu Linux 虚拟化
Docker入门实践(一)
Docker入门实践(一)