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

Docker学习-从无知到有知的学习过程的更多相关文章

  1. docker 学习路线

    docker 学习路线 参考资料 知乎 docker 的学习路线 Docker - 从入门到实践 Docker 核心技术与实现原理 Docker 入门 <Kubernetes in Action ...

  2. Docker学习总结

    本文作为总结性文章,不会详细讲解Docker.但会把已学习的.了解的内容按照由易到难的顺序串起来,更多的是帮助Docker新手快速的了解Docker,知道目前处在哪个阶段,接下来该学些什么,避免碰太多 ...

  3. Docker学习笔记 — 配置国内免费registry mirror

    Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror

  4. docker学习笔记1 -- 安装和配置

    技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...

  5. docker学习资料整理(持续更新中..)

    docker最近可以说火得一踏糊涂,跟 51大神在交流技术的时候这个东西会多次被提到,当我们还玩vm+linux/freebsd的时候,人家已经上升到更高层次了,这就是差距,感觉好高大上的样子,技术之 ...

  6. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

  7. Docker学习总结之Run命令介绍

    Docker学习总结之Run命令介绍 本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 在使用Docker时,执行最多的命令某 ...

  8. docker~学习笔记索引

    回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...

  9. Docker学习笔记 - Docker容器内部署redis

    Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...

随机推荐

  1. 2019 企叮咚java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.企叮咚等公司offer,岗位是Java后端开发,因为发展原因最终选择去了企叮咚,入职一年时间了,也成为了面试官 ...

  2. JAVA中调用外部程序,并等待其退出(涉及Runtime和ProcessBuilder)

    这段时间要写一个java调用外部程序的功能,踩了几个坑,这里分享一下. 首先用的是RunTime,调用代码如下: Process pro = Runtime.getRuntime().exec(&qu ...

  3. Java 多线程编程——多线程

    如果要想在Java之中实现多线程的定义,那么就需要有一个专门的线程主体类进行线程的执行任务的定义,而这个主体类的定义是有要求的,必须实现特定的接口或者继承特定的父类才可以完成. 1. 继承Thread ...

  4. Java自学-I/O 字符流

    Java的字符流 Reader Writer Reader字符输入流 Writer字符输出流 专门用于字符的形式读取和写入数据 步骤 1 : 使用字符流读取文件 FileReader 是Reader子 ...

  5. h5和native测试时的区别

    我们以往的APP是使用原生系统内核的,相当于直接在系统上操作,是我们传统意义上的软件,更加稳定 H5的APP先得调用系统的浏览器内核,相当于是在网页中进行操作,较原生APP稳定性稍差,似乎还没有百万级 ...

  6. 配置DirectX SDK开发环境

    创建工程 选择空工程 添加源文件 添加DirectX SDK测试程序 属性配置 添加头文件和库文件路径 D:\Microsoft DirectX SDK (February 2010)\Include ...

  7. Linux的权限管理操作-Linux从入门到精通第八天(非原创)

    文章大纲 一.网络相关概述二.网络相关命令三.项目上线流程(必须掌握)四.学习资料下载五.参考文章   一.网络相关概述 1. 网络发展 1.1 信息传递远古时期,人们就通过简单的语言.壁画等方式交 ...

  8. C# Net 通用json转Object(对象)

    C# Net  通用 json 转 Object  对象 C# Net 提取 json 字符串 对象 数组 C# Net json 对象 中有字符串 转为 对象 例如输入:{"1" ...

  9. mds0: Many clients (191) failing to respond to cache pressure

    目录 背景 后续的努力 临时的解决办法 cephfs时我们产品依赖的主要分布式操作系统,但似乎很不给面子,压力测试的时候经常出问题. 背景 集群环境出现的问题: mds0: Many clients ...

  10. Django框架(三)-- orm增删改查、Django生命周期

    一.orm介绍 1.什么是orm ORM即Object Relational Mapping,全称对象关系映射. 2.使用orm的优缺点 优点: 不用写SQL语句 开发效率高 缺点: SQL的效率低 ...