Doker学习01-Docker的基本概念

Docker概述

Docker出现的原因

一款产品有两个环境:开发(开发环境)和上线(运维环境)。

环境配置和切换过于麻烦,每一台机器都要部署环境(集群Redis,ES,Hadoop),费时费力。

解决思路:发布一个项目(jar+(redis+mysql+jdk+es))的同时能不能都带上环境安装打包?

传统思路:开发项目,运维部署项目和环境配置。

现在:开发打包部署上线,一套流程做完。

Docker为以上问题,提出了解决方案!

image-20210422110559011

Docker的思想来自于集装箱:通过特殊的隔离机制,将服务器利用到机制。

Docker历史

1.Docker诞生于2013年

2.Docker & LXC:Docker的第一个执行环境:LXC;但从0.9版本开始被Libcontainer取代

3.Docker & Libcontainer:Libcontainer为Docker封装了Linux提供的基础功能,如cgroups,namespaces,netlink和netfilter等

4.Docker & RunC: 2015年,Docker发布了RunC,一个轻量级的跨平台的容器运行;可以直接利用Libcontainer运行容器

5.Docker & OCI(The Open Containers Initiative): OCI是一个轻量级的开放式管理架构,由Docker,CoreOS和容器行业的其他领导厂商2015年建立,维护一些项目,制定容器运行的规范等

6.Docker & Containerd: 2016年,Docker分拆了Containerd,并将其捐献给了社区;使得Docker将容器的管理功能移出Docker的核心引擎并移入了一个单独的守护进程(containerd)

在容器技术出来以前,都是使用虚拟机技术,相比于虚拟机几个G,几分钟的启动时间,Docker做到了几个M甚至几KB的容量和秒级开启时间,这主要得益于它并不像虚拟机虚拟出操作系统或者内核,而是只保留了最核心的环境,十分的小巧。所有的程序员都必须要会docker!

Docker介绍

Docker是基于GO语言开发的开源项目!!

官网:https://www.docker.com/

文档地址:https://docs.docker.com/

仓库地址:https://hub.docker.com/

image-20210422111746659

Docker与虚拟机的比较

虚拟机技术缺点:启动慢,占用资源多,冗余步骤多

Docker容器化技术:不是模拟出一个完整的操作系统。

总结:

  1. 传统虚拟机:虚拟出一系列硬件,运行一个完整的操作系统,然后在这个系统安装和运行软件

  2. 容器内的应用直接运行在宿主机上,容器没有自己的内核,也没有虚拟出硬件,所以十分轻便

  3. 每个容器是相互隔离的,每个容器都有一个属于自己的文件系统,互不影响。

Docker作用

可以实现了 DevOps(开发,运维)

  1. 应用更快速的交付和部署:打包镜像发布测试,一键运行

  2. 更便捷的升级和扩缩容:使用了Docker,部署应用就像搭积木一个,项目打包为一个镜像,方便扩展

  3. 更简单的系统运维:在容器化之后,开发和测试环境都是高度一致的。

  4. 更高效的计算资源利用:Docker是内核级别的虚拟化,可以在一个物理机上运行多个容器实例,容器的性能可以被压榨到极致。

Docker基本组成

架构图

image-20210221182251636

基本概念

  1. 镜像(image):docker镜像好比是一个模板,可以通过这个模板创建容器服务,tomcat镜像=》run》tomcat01容器,通过镜像可以创建多个容器(最终服务运行或项目运行就是在容器中的)

  2. 容器(container):docker利用容器技术,独立地运行一个或一组应用,通过image来创建。
    启动,停止,删除,基本命令
    目前就可以将容器理解为一个简单的Linux系统

  3. 仓库(repository):仓库是存放镜像的地方。有公有和私有仓库之分。
    Docker Hub(默认是国外的),阿里云。。。都有容器服务器(配置镜像加速)

主要内容

Docker安装配置和基本原理

Docker常用命令

Docker部署案例

Docker可视化工具

Docker镜像

Docker容器数据卷

Dockerfile

Docker网络

Docker Compose

原文地址:http://www.cnblogs.com/sky123top/p/16852404.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性