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简单介绍。的更多相关文章

  1. Docker简单介绍

    Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...

  2. docker简单介绍----镜像和容器管理

    docker可以分为三部分:docker镜像   docker仓库  docker容器 docker镜像:一个image可以包含一个镜像,也可以理解为一个系统模板,里面安装了相关应用,也可以是纯净版的 ...

  3. docker 简单介绍及基础命令运用

    一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...

  4. docker简单介绍----Dockerfile命令

    DockerFile的组成部署: 下面优先介绍下Dcokerfile的基础指令 一.CMD指令:容器启动时要莫热门运行的命令,如果有多个CMD指定,最后一个生效 使用方法: CMD ["ex ...

  5. Docker系列(一):Docker简单介绍

    Docker简介: 多语言和框架:支持多语言和框架以及语言框架的扩展机制 多服务:开放的核心服务以及服务的扩展机制 多云和多IaaS技术:支持多种IaaS技术和多云的部署,包括公有云和私有云 Dock ...

  6. docker简单介绍----存储

    docker容器 中使用Volumes来实现数据的持久性,因为容器的删除会丢失数据,而关闭或者重启容器不会丢失数据 docker run -v即可使用Volumes 1.docker-managed ...

  7. docker简单介绍---部署私有docker仓库Registry

    1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...

  8. docker简单介绍----docker仓库的应用

    docker hub:主要用来存储docker镜像的仓库 docker默认提供了一个docker仓库,我们也可以自建私有仓库或者使用第三方的docker仓库来pull或者push镜像 这里我们以阿里云 ...

  9. docker简单介绍---网络端口管理

    一.查看docker支持的网络类型 docker network ls bridge:容器使用虚拟交换机的进行通信 host:使用宿主机的网络 none:只给容器分配一个lo的网卡,无法和外界进行通信 ...

随机推荐

  1. Lucky7(hdu5768)

    Lucky7 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  2. 使用.NET 6开发TodoList应用(9)——实现PUT请求

    系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 PUT请求本身其实可说的并不多,过程也和创建基本类似.在这篇文章中,重点是填上之前文章里留的一个坑,我们曾经给TodoItem ...

  3. Azure Data Lake(一) 在NET Core 控制台中操作 Data Lake Storage

    一,引言 Azure Data Lake Storage Gen2 是一组专用于大数据分析的功能,基于 Azure Blob Storage 构建的.Data Lake Storage Gen2 包含 ...

  4. FAT

    目录 概 主要内容 代码 Zhang J., Xu X., Han B., Niu G., Cui L., Sugiyama M., Kankanhalli M. Attacks which do n ...

  5. Java,JDK安装及环境配置

    jdk安装及环境配置 一.jdk安装 1.找到jdk安装包 2.安装jdk 3.安装jre 二.环境变量配置          1.JAVA_HOME JAVA_HOME C:\Program Fil ...

  6. Browser Events 常用浏览器事件

    事件 说明 click 鼠标点击时触发此事件 dblclick 鼠标双击时触发此事件 mousedown 按下鼠标时触发此事件 mouseup 鼠标按下后松开鼠标时触发此事件 mouseover 当鼠 ...

  7. 编写Java程序,实现简单的五子棋博弈游戏(美和易思Java练习习题)

    package com.qq.gb; import java.util.Scanner; public class GoBang { Scanner sc = new Scanner(System.i ...

  8. pod运行到指定node节点

    利用labels 1.一般来说都每个节点有自己特有的labels  比如 2.利用nodeSelector nodeSelector: kubernetes.io/hostname: master3 ...

  9. Linux上天之路(十一)之软件管理

    软件包格式: RPM:源码封装后的格式,类似于exe文件 源码:软件源代码,可以修改,优化 1. RPM软件包管理 rpm是一个很有用的包管理器,可以用于生成.安装.查询.核实.更新以及卸载单个软件包 ...

  10. Echart可视化学习(五)

    文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 常见的数据可视化库: D3.js ...