zoukankan      html  css  js  c++  java
  • Docker学习-从无知到有知的学习过程

    Docker学习

    最近被别人提到的docker吸引到了注意力,所以打算先快速的了解一下docker到底是个上面东西。
    之所以我写下这个文档呢,是为了记录对docker一无所知我是如何进行学习一门新技术的,一方面是为了记录自己的学习过程,另外一方面,希望能够有同样的新手,但是不知道怎么入门的人基于一定的帮助。
    不是说我的方法有多好,是我自己让自己找到属于自己的一套学习方法。
    首先呢,我去查阅了官网,https://www.docker.com/
    直接去看官网看的我有点蒙,我觉得我还是先找一个教学视频,
    我看的是尚硅谷的周阳老师的视频:
    https://www.bilibili.com/video/av27122140?from=search&seid=1600067007728942244
    
    官网Ref Doc:https://docs.docker.com/
    这也是我第一次尝试使用Markdown语法来练习写笔记,(#^.^#)
    

    好,接下来开始进入正题:

    简介: 容器,虚拟化技术:云计算,云平台,开发在云端,阿里云,javaee服务器编译部署 等等等会涉及到,Java程序员有必要了解一下。

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

    前提知识:

    • 强制,熟悉Linux命令和相关背景知识比如:ps,top
    • 建议,Maven、Git相关的知识
    课程时间:1.5天 - 基础篇

    立足于Java语言的角度:基础篇,程度深度广度细度达不到专业的docker研发工程师


    Docker是什么?

    为什么会有docker出现

    一款产品从开发到上线,从操作系统到运行环境,再到应用配置。
    作为开发+运维之间的写作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是个版本的迭代之后,不通版本环境的兼容,对运维人员都是考研。

    Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。

    环境配置如此麻烦,换一台机器,就要重来一次,费时费力。很多人想到,能不能从根本上解决问题。软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来,开发人员利用Docker可以消除协作编码时候“在我的机器上可正常工作”的问题。

    自己的理解:以前开发人员只是提交开发完毕的代码给部署人员,现在通过Docker将开发环境,配置环境,部署观景,运行依赖包,代码等等一起打包成镜像。由上而下打包,达到应用程序跨平台间的无缝接轨运作。

    Docker理念:

    Docker的主要目标是:“Build,Ship and Run Any APP,Anywhere”。也就是通过对应用组件的封装,分发,部署,运行等生命周期的管理,使用户的APP以及运行环境能够做到一次封装,到处运行

    Linux容器技术的出现就解决了这样的一个问题,而Docker就是从它的基础上发展过来的,将应用运行在Docker容器上面,而Docker容器再任何操作系统上都是一直的,这就是实现了跨平台,跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

    简单总结为一句话:

    解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
    

    ++这里提前抛出三个概念:Docker的三要素
    仓库,镜像和容器的概念++

    Docker能干什么?

    虚拟机的概念需要提前知道。
    
    虚拟机的缺点:
    1. 资源占用多
    2. 冗余步骤多
    3. 启动慢
    比较Docker和传统虚拟化技术的不同之处(容器虚拟化技术):
    • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需要应用进程。
    • 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此容器要比传统虚拟机更为轻便。
    • 每个容器之间互相隔离,每个容器都有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。
    • 彻彻底底的解决了虚拟机的缺陷。

    Docker其实就是一个缩小版,浓缩版,精品版本的Linux系统。

    开发/运维(DevOps理念):一次构建,随处运行。其他优点
    • 更快速的应用和部署
    • 更便捷的升级和扩缩容
    • 更简单的系统运维
    • 更高效的计算资源利用
    这里又自己搜集了一下关于devops的介绍
    https://baike.baidu.com/item/devops/2613029?fr=aladdin
    

    在用Docker技术的一些公司:
    新浪、美团、蘑菇街

    Docker去哪下载?

    Docker的安装

    前提
    • centOS 6.5(64-bit)以上版本
    • 系统内核版本为3.10以上

    查看自己的内核版本,指令:

    uname -r
    
  • 相关阅读:
    如何实现一个教师与学生教学辅助平台?
    面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?请根据自己的理解简明扼要的回答。
    2..移动APP开发使用什么样的原型设计工具比较合适?
    new delete和malloc free的区别
    char * 和char[]的区别以及怎样与string类型进行转换
    浅谈const的基本用法
    c++ map按key或value的值分别进行排序
    二叉树及先序,中序,后序遍历
    c++发展趋势
    markdown 的基本操作
  • 原文地址:https://www.cnblogs.com/bigbaby/p/12041637.html
Copyright © 2011-2022 走看看