Docker入门

学习路径:

  • Docker概述
  • Docker安装
  • Docker命令
    • 镜像命令
    • 容器命令
    • 操作命令
    • ...
  • Docker镜像
  • 容器数据卷
  • DockerFile
  • Docker网络原理
  • Idea整合Docker
  • Docker Compose
  • Docker Swarm
  • CI/CD Jenkins

Docker为什么会出现?

总结一句话
项目部署的时候把环境等相关配置也打包进去,从而别人下载的时候可以直接运行使用。

一款产品:开发--上线 要两套环境:应用环境,应用配置

开发 --- 运维。问题:我在我的电脑上可以运行!版本更新,导致服务不可用!对于运维来说,考验就十分大。

环境配置十分麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop)费时费力!

发布一个项目(jar+(Redis MySQL jdk ES)),项目能不能都带上环境安装打包?

之前在服务器配置一个应用的环境 Redis、MySQL、jdk、ES、Hadoop,配置超级麻烦且不能跨平台。

传统:开发jar,运维来做部署;

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

java--apk--发布(应用商店)--张三使用apk--安装即可用

java--jar(环境)--打包项目带上环境(镜像)--(Docker仓库:商店)--下载我们发布的镜像--直接运行即可!

Docker的思想来自集装箱

JRE--多个应用(端口冲突)--原来都是交叉的

隔离:Docker核心思想,打包装箱,每个箱子都是互相隔离的。

例如:这个船上要装 香蕉和猴子,要把他们隔离开,总不能船到岸的时候香蕉没了,只剩下一个个的胖猴子吧。这就用到了Docker的隔离机制,可以将服务器利用到极致。

Docker的历史

Docker基于Go语言开发的,开源项目

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

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

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

Docker能干嘛

之前的虚拟机技术

缺点:

  • 资源占用十分多;
  • 冗余步骤多;
  • 启动很慢。

容器化技术

不是模拟一个完整的操作系统

Docker 和 虚拟机技术 的不同:

  • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;
  • 容器内的应用直接运行在宿主机,没有自己的内核,也没有虚拟我们的硬件,所以就轻便了;
  • 每个容器间互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。

DevOps

应用更快速的交付和部署

        传统:一堆帮助文档,安装程序;

        Docker:打包镜像发布测试,一键运行

更便捷的升级和扩缩容

        使用Docker之后,部署应用就和搭积木一样,项目打包为一个镜像

更简单的系统运维

        容器化之后,开发和测试环境高度一致

更高效的计算资源利用

        Docker是 内核级别的虚拟化,在一个物理机上可以运行很多的容器实例。服务器的性能可以被压榨到极致。

Docker的几个概念

Docker基本架构

镜像(Image)

        Docker镜像就好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像==>run==>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或项目运行就是在容器中)

容器(Container)

Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建,启动、停止、删除、基本命令!目前可以把这个容器理解为一个简易的Linux系统。

仓库(Repository)

存放镜像的地方;

分为 公有仓库 和 私有仓库;

Docker Hub(默认是国外的)

阿里云...都有容器服务器(配置镜像加速)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值