docker简单介绍。
docker是啥? 一、概念?
// 和运维有关的工具,和开发没有很大的关系。只需要去调试项目,将项目运行更迅速。 二、作用?
1.只需要关心项目的编写和调试,不需要关心具体的项目需要运行在哪里,并且项目部署是非常安全的。
2.构建非常安全,并且部署和运行项目可以在任意的地方。 docker英文翻译过来是码头工人,码头工人在码头进行搬运,doker的整个核心就是集装箱,目的就是把所有的码头工人全部下岗 理解。
当运维和开发人员出现分歧和冲突的时候,千万不要吵架,要一起寻找问题的解决方案:
1.把开发的所有详细的版本号以及工具所对应的版本信息全部列出一个清单供运维使用
需要写一个非常大的文档,但是一般开发工作人员不擅长写文档
2.运维会告诉开发人员,你能不能把电脑上的整个全部配置好的环境给我复制一份,然后我把你的环境全部粘贴到服务器上
/*
这种技术就叫做docker 在一个服务器中 建立各种隔离。 将东西区分存放。这就是docker。 */
三、核心?
// 集装箱。一个集装箱,搞定所有的物品。 1.镜像
1.1 ISO(/* 使用代码做的系统。*/)文件, 不可被改动。所有的镜像文件 只能读。
1.2 操作
下载centos镜像
创建虚拟机
删除镜像,不影响系统的正常运行。这个系统称之为容器。
通过容器,制作镜像。 2.容器 3.仓库 四、docker在项目中的作用?
一个项目上线。--------》服务器。
-------大项目---------
上层框架使用bootstrap
调用项目的接口controller
中间件 PHP
爬虫 Python
Redis nginx ftp dubbo zookeeper mycat 配置 jdk PHP Python 各种环境。 // 在一个服务器中 建立各种隔离。 将东西区分存放。这就是docker。 五、docker的优秀之处? /*
1.优秀?
把所需要部署的项目和环境分别 放在不同的集装箱里面。 把,项目根据不同的类型进行拆分。
把,拆分的每一块放在的集装箱,每一个集装箱之间互不影响。
就不存在跨域!!! 优秀!!! docker 虚拟化的玩意。
在一个Linux中安装 docker 都放在一个集装箱里面,抗的住么? 2.更秀的地方? 内存<=512k
硬盘<=170M docker做一个Linux的基础系统只需要170M */ 六、 docker和虚拟机?
1.虚拟机?
是一种虚拟化的技术
当虚拟机从安装完毕到启动需要很久,而且启动的时候需要加载大量文件(有可能linux用不到),log文件,配置,环境这些可能linux用不到,但是依然需要加载
在集群模式中,需要大量的虚拟机(3台)
第一台虚拟机/etc/全部启动
第二台虚拟机/etc/全部启动
第三台虚拟机/etc/全部启动
相当于加载了三次,也就是说三个linux虚拟机中每一个etc文件夹都是相同的,于是就必须加载这些冗余(三次)的配置文件
虚拟机所存放的位置(硬盘)会越来越大(每一台linux都有自己的配置文件,每一个配置文件都是相同的) 2.另一种虚拟化的技术诞生了(LXC:Linux Container):称之为linux容器
//这种技术就是docker 把所需要的配置的集群,装在一个容器中,
把相同的所有的配置全部封装抽取起来,所有的Linux集群共用一个配置,
// 解决冗余的问题。 linux虚拟机需要把无论能否用到的所有配置全部加载一遍 按需求加载? //减少内存
doctor把 所需要的配置文件加载进来,不需要的暂时不要加载,当Linux使用到
这些没有加载的文件的时候,再进行加载。 分类存储? //减少硬盘
把Linux中配置按照不同的种类进行规划 启动类 1 就只放和Linux 启动相关的文件。 配置类
冗余类
日志类
二、docker的三大核心?
docker的三大核心
4.1.镜像
称之为iso文件(使用代码所做的系统),是不允许被改动的,也就是说一旦镜像只做完毕后是一个只读的状态
对镜像的操作:
4.1.1.从linux官网中下载centos镜像(是linux公司所制作完成以后的镜像)
4.1.2.把镜像放在vmware中创建一个linux虚拟机(centos6.9)
4.1.3.删除镜像文件是不影响系统正常运行的,那么这个系统就称之为容器
4.1.4.还可以通过容器制作镜像 4.2.!!容器!!
其实容器就是通过镜像所创建出来的系统
通过vmware加载ISO文件-->形成一个linux系统,这个系统就称之为这个ISO镜像文件的容器
容器其实就当相遇一个linux系统,所有的命令行操作以及增删改查和各种框架配置都需要在容器中完成
其实最终程序员所操作的就是容器
4.2.1.根据镜像创建出一个容器
4.2.2.启动容器
4.2.3.删除容器
4.2.4.在容器中做各种操作(ll命令,tar -zxvf命令,启动tomcat,配置redis....)
4.2.5.根据容器创建镜像
/*
思考问题:
当tomcat镜像(相当于官网所提供的的tomcat压缩包)创建了容器后(也就是说当tomcat压缩包解压出了一个tomcat文件夹之后),相当于在linux中已经把tomcat部署完毕了,在docker的tomcat容器中部署了一个web项目(web项目有一个图片上传功能),为了做负载均衡,把web项目部署在5个docker的tomcat上面(通过tomcat的镜像创建了5个容器),当tomcat重新启动的时候图片丢失了
如何解决问题?
部署一个ftp服务器,把所有的图片全部存入到ftp服务器上,使用的时候直接进行访问即可
思考问题:
项目非常老旧,根本无法做扩展FTP(spring,strut1,higerbate,DWR....),如何解决?
在docker所依托的linux服务器上创建一个upload文件夹(会永久的保存在linux硬盘中)
然后把docker中的tomcat中的upload文件夹和linux系统中upload文件夹做数据共享
--数据卷
把容器中所需要持久化的数据保存在本机硬盘中,这个硬盘就称之为容器的数据卷
数据共享
*/
镜像和容器的关系:
在官方文档中介绍,首先先有的是容器再有的镜像(linux公司首次开发linux系统的时候,必须先研究整个linux系统,linux系统没有bug以后实现真实上线(稳定版上线)-->生成镜像供用户所使用)
用户使用容器的时候就必须要有镜像
eg:
在vmware虚拟机中运行一个linux系统(原生的linux系统),但是这个系统必须要通过ISO镜像文件进行创建
把redis部署完毕以后然后生成一个ISO镜像文件--->运维拿到这个iso直接运行会得到linux服务器(已经包含了redis)
镜像和容器只是相对的,可以通过镜像生成容器,也可以通过容器生成镜像 4.3.仓库
数据卷?
docker简单介绍。的更多相关文章
- Docker简单介绍
Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...
- docker简单介绍----镜像和容器管理
docker可以分为三部分:docker镜像 docker仓库 docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...
- docker 简单介绍及基础命令运用
一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...
- docker简单介绍----Dockerfile命令
DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...
- Docker系列(一):Docker简单介绍
Docker简介: 多语言和框架:支持多语言和框架以及语言框架的扩展机制 多服务:开放的核心服务以及服务的扩展机制 多云和多IaaS技术:支持多种IaaS技术和多云的部署,包括公有云和私有云 Dock ...
- docker简单介绍----存储
docker容器 中使用Volumes来实现数据的持久性,因为容器的删除会丢失数据,而关闭或者重启容器不会丢失数据 docker run -v即可使用Volumes 1.docker-managed ...
- docker简单介绍---部署私有docker仓库Registry
1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...
- docker简单介绍----docker仓库的应用
docker hub:主要用来存储docker镜像的仓库 docker默认提供了一个docker仓库,我们也可以自建私有仓库或者使用第三方的docker仓库来pull或者push镜像 这里我们以阿里云 ...
- docker简单介绍---网络端口管理
一.查看docker支持的网络类型 docker network ls bridge:容器使用虚拟交换机的进行通信 host:使用宿主机的网络 none:只给容器分配一个lo的网卡,无法和外界进行通信 ...
随机推荐
- 【LeetCode】796. Rotate String 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 第八个知识点:交互式的定义如何帮助计算和IP类问题是什么
第八个知识点:交互式的定义如何帮助计算和IP类问题是什么 这是系列中的第8篇,我们主要讨论计算中交互作用的用处和IP类问题是什么. 为了回答这些问题,我们首先给交互式证明系统一个简洁的介绍.众所周知, ...
- KISS原则
Keep It Simple, Stupid 1. 模块性原则:写简单的,通过干净的接口可被连接的部件:2. 清楚原则:清楚要比小聪明好.3. 合并原则:设计能被其它程序连接的程序.4. 分离原则:从 ...
- CapstoneCS5265|TYPEC转HDMI 4K60HZ转换方案设计|CS5265功能介绍
芯片简介描述:CS5265集成了一个DP1.4的转换器HDMI2.0转换.此外,CC控制器还用于CC通信,以实现DP Alt模式. CS5265是一种高度集成的单芯片,适用于多个细分市场和显示应用,如 ...
- 【jvm】09-full gc分析思路
[jvm]09-full gc分析思路 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点个赞. ...
- Java初学者作业——用户输入一个小数,程序分解出整数部分和小数部分。
返回本章节 返回作业目录 需求说明: 用户输入一个小数,程序分解出整数部分和小数部分. 实现思路: 接收用户控制台输入的小数. 用强制类型转换将整数部分得到. 使用用户输入的小数减去整数部分得到小数部 ...
- find 命令常用解释
背景色是:orange #### find命令 find * path: 所有搜索的目录以及其所有子目录.默认为当前目录 * expression: 所有搜索的文件的特征 * cmd: 对搜索结果惊醒 ...
- Sentry 企业级数据安全解决方案 - Relay 入门
内容整理自官方开发文档 Sentry Relay 通过提供作为应用程序和 sentry.io 之间中间层的独立服务来提供企业级数据安全性. Relay 专门设计用于: 在将个人身份信息 (PII) 发 ...
- ssh到localhost或127.0.0.1拒绝连接
通过ssh连接到本机报错 ssh: connect to host localhost port 22: Connection refused, 你能用ssh登录其它主机并不代表着本地有ssh服务,要 ...
- Go语言系列之反射
变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息. 值信息:程序运行过程中可动态变化的. 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力.程序在编译时,变量 ...