Docker概述
- Docker概述
- Docker安装
- Docker命令
- 镜像命令
- 容器命令
- 操作命令
…
- Docker镜像
- 容器数据卷
- DockerFile
- Docker网络管理
- IDEA整合Docker
- Docker Compose
- Docker Swarm 简化版的K8s
Docker为什么出现?
传统的项目部署,环境配置是十分麻烦,第一个机器都要部署环境(集群Redis,ES,Hadoop…)费时费力
发布一个项目(jar+(Redis MySQL jdk ES))项目能不能都带上环境安装打包!
例:
java -> apk -> 发布(应用商店) -> 安装即可使用!
java -> jar(环境) -> 打包项目带上环境(镜像)->(Docker仓库:商店) -> 下载发布的镜像 -> 直接运行即可!
Docker给以上问题,提出了解决方案!
Docker的思想就来自于集装箱!
JRE - 多个应用(端口冲突)
隔离:Docker核心思想!打包装箱,每个箱子是互相隔离的
Docker 通过隔离机制,可以将服务器利用到极致!
本质:所有的技术都是因为出现了一些问题,我们需要去解决,才去学习使用!
Docker的历史
2010年,几个搞IT的年轻人,就在美国成立了一家公司 dotCloud
做一些pass的云计算服务! LXC有关的容器技术!
他们将自己的技术(容器技术)命名就是Docker
2013年开源 -> Docker越来越多的人发现了Docker的优点,火了,Docker每个月都会更新一个版本! ->2014年4月9日 Docker 1.0发布!
vm : linux centos原生镜像(一个电脑!)隔离,需要开启多个虚拟机! 几个G 几分钟
docker :隔离,镜像(最核心的环境 4m + jdk + mysql)十分的小巧,运行镜像就可以了!小巧!几M kb 秒级启动!
聊聊Docker
Docker是基于Go语言开发的!开源项目!
官网:https://www.docker.com/
文档地址:https://docs.docker.com/ Docker的文档是超级详细的
仓库地址:https://hub.docker.com/
Docker能做什么
虚拟机技术
- 资源占用十分多
- 冗余步骤多
- 启动很慢!
比较Docker和虚拟机技术的不同
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在 宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
- 每个容器间是互相隔离,每个容器内都有一个属于的文件系统,互不影响
DevOps(开发,运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行
更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样!
项目打包为一个镜像,扩展 服务器A!服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
Docker是内核级别的虚拟化,可以再一个物理机上运行很多的容器实例!服务器的性能可以被压榨到极致
说明:摘抄B站 “狂神说” 视频