本篇目录

  1. 写在最前面的话
  2. docker概念介绍
  3. 镜像的概念、容器的概念
  4. docker的安装介绍

写在最前面的话

  大家好,首先跟大家说声对不起,我班门弄斧了,我本身是做系统开发,使用的语言是C#和JAVA这两类,再多了的编程语言真的是没有精力去学习。docker这门应用技能断断续续的学习着,不精通。是能说我熟悉它,我能使用它。我能简单理解它。所有接下来如果有哪里有写错的地方,大家可以留言给我,如果我看到了,会验证且更正的。

  我粗略拟定了一个学习总纲,最终的目标是学习大数据研发,分布式架构这类。我不知道我学习的方向是否正确,接下来的课程整理,我会往这边靠。

  最后感谢大家。

docker 概念介绍

  我个人理解的docker技术,就是一个运行的容器,怎么理解?所谓运行的容器,就是系统或者程序所需要的一切必要条件,比如当你运行jar或者war的时候,一句“Hello World”,我们需要什么?需要的是jvm,是jre,那这个时候我们只要jvm,jre足够的内存、cpu、网卡等等,我们的代码就可以在任何地方跑起来。这个时候,有人可能会问,它和虚拟机有什么区别?确实很多人都会拿着虚拟机和docker做对比,那么虚拟机需要的是一个OS(操作系统),在虚拟出来的操作系统上,我们可以做任何事情。但是大家注意了,如果我只是想要运行一段程序,就安装一个虚拟机,是不是很浪费,而且虚拟机也是很耗物理机器的资源。

  所以,虚拟机它是这样子的【OS】->【Hyper】->【Guest OS】->【bin/libs】->【apps】。

   而,docker它是这样的【OS】->【docker engine】->【bin/libs】->【apps】。

  所以通过对比,大家可以清晰的看到两者的区别docker engine 可以与系统隔离同时保持通信。

镜像的概念、容器的概念

  通过上面对docker概念的介绍,我们了解到,docker的守护进程可以很好的将容器内部运行和容器外部执行进行隔离,互不干扰。那么我们怎么写出第一句Hello World呢?我们需要了解两个概念,镜像(image)、容器(container).

  我理解下来,容器=镜像+可读写区。什么意思?说白了一点就是,容器就是镜像的运行场所,这个场所为容器提供所必须的可读写区域。就好比,小婴儿在妈妈肚子里面,婴儿好比image,而妈妈的肚子就是container,为小婴儿提供活动的空间和所需的养分。

  所以,镜像只是一些只读的文件,而容器就是只读文件+可读写区域

docker的安装介绍

  简单说说,不如实际做做。在做的过程中就可以深刻体会了,凡事都有个过程,不要理会概念和原理,我们可以先模仿,先使用,再反过来看原理。就算理解错了也没关系,因为如果一开始你就懂原理,那docker就是你创造出来的了。哈哈,所以边学边调整原理的认识。

  那么,在开始之前我们来确认下环境,这个非常重要,很重要。首先第一,不要用mac系统,不要用mac系统,不要用mac系统,重要的事情说三遍,因为mac它不是liunx内核。mac的很多命令都是封装的,你无法知道内部的一些信息。它会给你一些莫名其妙的错误提示。

  其次,不推荐使用Windows,至于为什么,我也不清楚,只是我在windows下使用docker,会很不习惯。很变扭很鸡肋,感兴趣的可以尝试一下。

  最后,推荐Ubuntu或则CentOS,很好用。我使用的是Ubuntu,虽然我没有全部掌握它的命令和参数,但是我使用下来,还是觉得很方便。很好用,有的时候可能比windows还会好点。

  当然以上都是我个人的观点,大家可以根据喜好选择系统环境,以后不做说明,文章内出现的系统都为ubuntu.那怎么安装操作系统环境我这里就不讲了。

  进入到系统中,在桌面上,右击,选择【打开终端】

  查看docker版本

  

  当然,如果你没有安装docker,就不会出现版本号信息,

  在安装之前,我需要需要做一件事情,由于政治、历史原因,砸门国家有个墙非常厉害,长城防火墙对吧,所以在获取docker的时候,我们需要设置下镜像加速。

  在命令中输入【sudo vim /etc/docker/daemon.json】,如果提示

  

  不要害怕,运行【sudo apt install vim】我们来安装下这个vim命令就可以了。

  接上文,在运行完【sudo vim /etc/docker/daemon.json】之后,打开编辑

  我们用网易的镜像加速,保存好,我们就可以快乐的准备安装docker了。

  使用【sudo wget -qO- https://get.docker.com/ | sh】静静等待就行,提示安装成功之后【sudo service docker start】启动一下服务。

  最后,我们再使用上面的查看docker版本的方法查看下docker版本。就可以了。

  docker的安装有很多方式,不是很难。大家可能会对命令有点陌生,还是那句话,坚持和习惯。

                                                    思维空间

docker 简单入门(一)的更多相关文章

  1. Docker 简单入门

    Docker 简单入门 http://blog.csdn.net/samxx8/article/details/38946737

  2. 第二篇:docker 简单入门(二)

    本篇目录 写在最前面的话 最常用的docker命令 获取远程仓库镜像 写在最前面的话 如上图大家看到的这样,以后此类文章请到其他平台查阅,由于博客园提示说,内容太多简单,所以以后简单的内容我会放在cs ...

  3. 第一篇:docker 简单入门(一)

    本篇目录 写在最前面的话 docker概念介绍 镜像的概念.容器的概念 docker的安装介绍 写在最前面的话 由于此类文章博客园鉴定为简单文章,所以已经移到csdn[https://blog.csd ...

  4. docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序

    一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...

  5. Docker最简单入门之(二)——简单使用Docker

    0.前言 本章主要写一些怎么使用Docker,拉取镜像和创建容器等之类的Docker的常用基本操作.在开始写之前,大家需要明白一下几个名词的含义 1.镜像:镜像是指一个类似于安装包的东西,尝试安装过电 ...

  6. docker-9 supervisord 参考docker从入门到实战

    参考docker从入门到实战 使用 Supervisor 来管理进程 Docker 容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务.但我们经常需要在一个机 ...

  7. Docker快速入门

    Docker已经火了很长一段时间,最近打算在阿里云上好好熟悉一下Docker的相关应用,为今后的工作做准备. 基本概念 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是do ...

  8. Docker新手入门:基本用法

    Docker新手入门:基本用法 1.Docker简介 1.1 第一本Docker书 工作中不断碰到Docker,今天终于算是正式开始学习了.在挑选系统学习Docker以及虚拟化技术的书籍时还碰到了不少 ...

  9. Docker快速入门(二)

    上篇文章<Docker快速入门(一)>介绍了docker的基本概念和image的相关操作,本篇将进一步介绍image,容器和Dockerfile. 1 image文件 (1)Docker ...

随机推荐

  1. Java中的内存泄露

  2. 使用Spring Boot操作Hive JDBC时,启动时报出错误:NoSuchMethodError: org.eclipse.jetty.servlet.ServletMapping.setDef

    使用Spring Boot操作Hive JDBC时,启动时报出错误:NoSuchMethodError: org.eclipse.jetty.servlet.ServletMapping.setDef ...

  3. smarty学习——缓存

    存被用来保存一个文档的输出从而加速display()或fetch()函数的执行.如果一个函数被加进缓存,那么实际输出的内容将用缓存来代替. 缓存可让事物非常快速的执行,特别是带有长计算时间的模板.一旦 ...

  4. POSIX 线程具体解释(3-相互排斥量:"固定加锁层次"/“试加锁-回退”)

    有时一个相互排斥量是不够的: 比方: 当多个线程同一时候訪问一个队列结构时,你须要2个相互排斥量,一个用来保护队列头,一个用来保护队列元素内的数据. 当为多线程建立一个树结构时.你可能须要为每一个节点 ...

  5. PHP 7.0 EOL (PHP 技术支持相关)

    PHP 7.0 EOL (PHP 支持相关) PHP 5.6 于 2018-12-31 结束(EOL) 从图表看出,PHP 7.0 是一个过渡版本,现在已经 EOL. 而 PHP 7.1 将于明年年底 ...

  6. oracle12c之 控制pdb中sga 与 pga 内存使用

    Memory Management using Resource Manager Oracle数据库资源管理器(资源管理器)现在可以在多租户容器数据库(CDB)中管理可插入数据库(PDBs)之间的内存 ...

  7. C#创建文件夹和文件

    一.创建文件夹,例: if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } 二.创建文件,例: global::Syste ...

  8. springMVC学习(11)-json数据交互和RESTful支持

    一.json数据交互: json数据格式在接口调用中.html页面中较常用,json格式比较简单,解析还比较方便. 比如:webservice接口,传输json数据. springMVC进行json交 ...

  9. 退出循环break,在while、for、do...while、循环中使用break语句退出当前循环,直接执行后面的代码。

    在while.for.do...while循环中使用break语句退出当前循环,直接执行后面的代码. 格式如下: for(初始条件;判断条件;循环后条件值更新) { if(特殊情况) {break;} ...

  10. linux下安装jdk7

    查看linux系统是32位还是64位系统:uname --mi686 //表示是32位x86_64 // 表示是64位新建一个jdk的安装目录,我这里是在/usr/local/下新建了java目录,命 ...