Docker入门第一章
Docker为什么出现?
一款产品:开发到上线 两套环境!应用环境,应用配置!
可能在开发环境你的产品是正常的,但是到了线上环境你的产品可能就会出现各种原因,或许是因为环境的不同,也可能是因为配置的不同等等各种原因导致服务的不可用!对于运维来说,考验就非常大。
环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop等等)!费时费力。
现在你需要发布一个项目(jar包 +(环境 Redis、Mysql、JDK、ES)),项目需要带上环境安装打包!此时Docker就可以帮你解决。
相当于Docker帮你将jar包和环境打包到一起部署上线,一套流程做完!
举个抽象的例子你用Java开发的apk应用(应用商店)然后吕世昊使用apk安装即可使用,而Docker是你用java开发一个jar,然后依赖一些环境如Mysql等等,而你只需要将这个jar和环境打包成一个镜像文件然后发布Docker仓库中(商店),吕世昊就可以下载你发布的Docker镜像,一键运行就ok了。
Docker简介
Docker是基于Go语言开发的!开源项目!
Docker的官网:https://www.docker.com
Docker的文档地址:https://docs.docker.com/ (Docker的文档是超级详细的)
Docker的下载:(进入Docker文档页面就有下载的入口)
Docker的仓库地址:https://hub.docker.com/
Docker和虚拟机的不同
传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
Docker容器内的应用直接运行在宿主机的内容,Docker容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
每个Docker容器间是互相隔离,每个Docker容器内都有一个属于自己的文件系统,互不影响。
Docker的好处
应用更快速的交付和部署
传统:给你一大堆帮助文档,安装程序。
Docker:打包镜像发布测试,一键运行。
更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样!
项目打包为一个镜像,扩展 服务器A!服务器B!
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的。
更高效的计算资源利用:
Docker是内核级别的虚拟化,在一个物理机上可以运行很多容器实例。
Docker的基本组成
- Client:客户端
- DOCKER_HOST:Docker的服务
- Registry:远程仓库
- docker build:构建一个容器
- docker pull:拉取一个容器
- docker run:运行一个容器
- Docker daemon:Docker的守护进程
- Images:镜像(可以理解为Class类)(镜像就好比是一个模板,可以通过模板创建容器实例或者说容器服务,一个镜像可以创建多个实例)
- Containers:多个容器(可以理解为类实例出来的对象)(可以对容器进行启动,停止,删除等基本命令)
- Registry:远程仓库(存放镜像的地方,仓库分为公有仓库和私有仓库)(Docker Hub是国外的共有仓库地址,可以配置镜像加速使用国内阿里云的仓库)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
个性签名:学习如逆水行舟,不进则退!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
原文地址:https://www.cnblogs.com/lvshihao/p/15135107.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux尝试登录失败后锁定用户账户的两种方法
- Linux内存泄漏检测shell脚本
- 详解Linux系统中网卡MAC地址克隆方法
- linux下日志定时轮询的流程详解
- Vim中查找替换及正则表达式的使用详解
- CentOS 7下部署php7.1和开启MySQL扩展的方法教程
- Ubuntu系统下用Crontab命令定时执行PHP文件详解
- CentOS7 LNMP+phpmyadmin环境搭建 第三篇phpmyadmin安装
- Linux有限状态机FSM的理解与实现
- Linux下浅谈crond与crontab的命令用法
- centos 7系统下安装Jenkins的步骤详解
- linux tomcat配置https的方法
- Linux 中firewall的使用方法总结
- CentOS 7 安装vsftpd 服务器的具体操作步骤
- 详细介绍通过配置Apache实现404页面替换