作者:施定纶士弘财士 | 来源:互联网 | 2023-08-06 13:11
Docker学习路径Docker概述Docker安装Docker命令镜像命令容器命令操作命令操作命令Docker镜像容器数据卷DockerFileDocker网络原理IDEA整合
Docker学习路径 Docker概述 Docker安装 Docker命令 镜像命令 Docker镜像 容器数据卷 DockerFile Docker网络原理 IDEA整合Docker Docker Compose CI\CD jenkins Docker概述 Docker为什么会出现 一款产品:. 开发 -----> 上线 可能会经历两套环境! 应用环境, 应用配置!有可能会出现很多问题! 开发------>运维: 经常出现的一句话: 我在我电脑上可以运行! 可能存在的原因: 版本更新,导致服务不可用! 对于运维来说,考验就十分大 ! 环境配置是十分麻烦的,每一个机器都要部署环境(集群Redis ES Hadoop)! 费时费力! 发布一个项目(jar+(Redis Mysql jdk ES)),项目可不可以都带上环境安装打包! ? 之前在服务器配置一个应用的环境 Redis MySQL jdk ES Hadoop ,配置起来超级麻烦,不能夸平台! windows,最后发布到linux 传统: 开发jar 运维来部署 现在:开发打包部署上线 , 一套流程昨晚
Docker 给以上问题提出了解决方案! Docker的思想源自于集装箱! JRE— 多个应用(端口冲突报错! 配置错误等等问题)
隔离: Docker核心思想!打包装箱! 每个箱子互相隔离!
例如: 一个集装箱放水果 一个放生化原料 让他们互相不影响! Docker 通过隔离机制,可以将服务器利用到极致
本质:所有的技术都是因为出现了一些问题,我们需要去解决,才去学习!
Docker的历史 2010年,几个搞 IT的年轻人,在美国成立了一家公司 “dotCloud”
做一些pass的云计算服务! LXC有关的容器技术! 他们讲自己的技术(容器化技术) 命名为 Docker! Docker 刚刚诞生的时候没有引起行业的注意! dotCloud,活不下去! 开源
开放源代码! 2013年,Docker开源! Docker越来越多的人发现Docker的优点! Docker火了,Docker每个月都会更新一个版本! 2014年,Docker1.0版本发布! 在容器技术没有出来之前,我们都是使用虚拟机技术! 虚拟机:在windows中装一个 VMware,通过这个软件我们可以模拟出来一台或多台电脑,但占用物理资源过于多! 笨重! 虚拟机也是属于虚拟化技术,Docker 容器技术,也是一种虚拟化技术!
VM, linux Centos 原生镜像(一台电脑) 隔离,需要开启多个虚拟机! 十几 甚至 几十个G ! Docker , 隔离,镜像(最核心的环境 4m+jdk+mysql)十分精巧,运行镜像就可以了,小巧! 几个M 甚至KB 秒级启动
到现在,几乎所有开发人员都需要了解Docker!
聊聊Docker Docker 是居于Go语言开发的! 开源项目! 官网: https://www.docker.com/ 文档地址: https://www.docs.docker.com/ Docker的文档是超级详细的 仓库地址:https://hub.docker.com/
Docker能干嘛? 之前的虚拟机技术!
虚拟机技术缺点:
资源占用十分多 冗余步骤多 启动很慢 容器化技术
容器化技术不是模拟的一个完整的操作系统
比较Docker和虚拟机技术的不同
传统虚拟机,虚拟出一个硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件 容器内的应用直接运行在 宿主机的内容 ,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响! DevOps(开发,运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序 Docker: 打包镜像发布测试,意见运行
更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样! 项目打包为一个镜像,拓展 ! 服务器A 出现问题了, 直接在服务器B 上运行!
更简单的系统运维
在容器化之后,我们的开发或测试环境都是高度一致的。 更高效的计算资源利用: Docker 是 内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例! 服务器的性能可以被压榨到极致!
可参阅视频: https://www.bilibili.com/video/BV1og4y1q7M4?p=5