『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 9117|回复: 19

[经验分享] 告别不断搞坏系统格式化tf之路-小白视角解读docker的使用

[复制链接]

62

主题

581

帖子

6043

积分

论坛元老

Rank: 8Rank: 8

积分
6043
金钱
5387
HASS币
240

教程狂人论坛风云人物

发表于 2017-11-16 21:12:36 | 显示全部楼层 |阅读模式
本帖最后由 antsunzj 于 2017-11-16 21:12 编辑

这是为了配合我昨天所发的镜像所做的一个简易经验分享。建议新手在使用我的镜像之前,先阅读本文。还没有写完,但是先发出来,让使用我的固件的新手先大致理解什么是docker。开始认识docker之前,我们先看一张官方的标志图:
docker.jpg
这是一个知乎大神对这张图做的一个通俗的解释,在这里引用一下:
#########################################################
那个大鲸鱼(或者是货轮)就是操作系统
把要交付的应用程序看成是各种货物,原本要将各种各样形状、尺寸不同的货物放到大鲸鱼上,你得为每件货物考虑怎么安放(就是应用程序配套的环境),还得考虑货物和货物是否能叠起来(应用程序依赖的环境是否会冲突)。
现在使用了集装箱(容器)把每件货物都放到集装箱里,这样大鲸鱼可以用同样地方式安放、堆叠集装了,省事省力。Docker就是这整套机制啦。
作者:周宇刚
链接:https://www.zhihu.com/question/28300645/answer/50922662
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
#########################################################
我们再来看一些专业的解释:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。
Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是Docker提出的"Build once,Run anywhere"。
为了更好的认识Docker,我们先来了解几个必备词汇:镜像,容器和仓库。
  • 镜像(image):Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。镜像是一种文件结构。Dockerfile中的每条命令都会在文件系统中创建一个新的层次结构,文件系统在这些层次上构建起来,镜像就构建于这些联合的文件系统之上。Docker官方网站专门有一个页面来存储所有可用的镜像,网址是:https://hub.docker.com/
  • 容器( Container):容器是从镜像创建的运行实例。为了隔离应用,Docker进程隔离,为进程或进程组创建已隔离的运行空间,为进程提供不同的命名空间视图。这样,每一个隔离出来的进程组,对外就表现为一个container(容器)。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的 Linux 环境,Docker 利用容器来运行应用。
  • 仓库仓库是集中存放镜像文件的场所,仓库注册服务器(Registry)上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。Docker仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push命令将它上传到公有或者私有仓库,这样下次要在另外一台机器上使用这个image时候,只需要从仓库上pull下来就可以了。
##############################################################
作为一个小白的我,看了有点懵懵懂懂的意思了。为了更加深入的理解,我不断的百度和google。慢慢的有了自己的理解。下面就跟大家深入的分享一下:
我们还是来看一张我画的图:
docker原理图.png
#################################################################
我用小白的视角解读一下啊:
  • dockerhub这个网站相当一个公共的码头仓库,各种热血码农们生产打包好自己的集装箱(即镜像img),例如hass官方会在里面提供他们封装好了的集装箱(即镜像img) 。他们把集装箱(即镜像img)都放在码头上,我们可以通过网络把码头上的集装箱(即镜像img)搬回自己的船上。把东西搬回来的过程即pull。
  • 你在这个已经搬回船上的集装箱模板上产生一个进程即划分出一个新的“使用的空间”,这个进程( “使用的空间” )叫即“容器”,这个“容器”是可以和我们的船或者其他的容器根据一定的规则通讯的。然后我们在“容器”进行操作,所有无论你弄这个容器,都不会把破坏船也不会弄坏集装箱。a集装箱产生的“容器”也不会弄坏b集装箱产生的“容器”。还可以在船上(系统)划个独立的地方存放供这个容器使用的文件或者依赖等。
  • 甚至厉害的是,我们在容器上进行操作加工,把它整成我们想要的东西,然后又可以简单的命令封装成你自己制作的集装箱即镜像。(自己加工过有自己特色的集装箱)。新的集装箱也不会影响旧的集装箱。你可以把自己在船上新生产的集装箱(img)上传回码头给其他人搬到自己的船上。把自己集装箱传输到码头的过程即push。也可以只是把这个集装箱留在船上(img镜像留在本地仅供自己使用)。
#################################################################
所以,使用docker的整个过程是这样子的:
  • 造一条docker环境的船==>
  • 去仓库看看有什么集装箱(img)==>
  • 挑选合适的集装箱搬运(pull)回船上==>
  • 以搬回的集装箱为模板按照一定的规则创建一个独立的空间即创建容器( Container) ==>
  • 使用或者在容器进行各种操作以满足我们的要求==>
  • 根据我们自己要求,把容器打包成新的集装箱(img) ==>
  • 分享到公共码头或者私人码头或者留在船上放在。
#################################################################
造船:
  • 我们都知道船有很多,不是什么船都可以装集装箱的。所以我们要知道什么的船可以用。即什么系统支持docker。通常是linux的各种版本都可以支持,具体的自己去百度吧。
  • 在这里需要注意,能装集装箱的船承载的规格又是有不同的。即不同的核心支持使用的镜像是不一样的。比如树莓派使用arm版本的镜像,其他电脑安装的就是使用amd的镜像。所以这点要留意。
安装docker的方法论坛有详细的教程:
上面两个版本他们都是为了装hassio而产生的,我们可以根据自己的需要看看用不用安装hassio(它也是一个封装好的镜像)
我集成版本:
#################################################################


评分

参与人数 1金钱 +18 收起 理由
+ 18 666!坐等更新~

查看全部评分

回复

使用道具 举报

25

主题

688

帖子

3630

积分

论坛元老

Rank: 8Rank: 8

积分
3630
金钱
2937
HASS币
219

活跃会员

发表于 2017-11-16 21:21:05 | 显示全部楼层
感谢楼主如此详细的讲解
回复

使用道具 举报

30

主题

999

帖子

4117

积分

论坛元老

Rank: 8Rank: 8

积分
4117
金钱
3113
HASS币
0

活跃会员

发表于 2017-11-16 21:22:39 | 显示全部楼层
楼主费心了
回复

使用道具 举报

123

主题

4626

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16009
金钱
11298
HASS币
45
发表于 2017-11-16 21:40:50 | 显示全部楼层
docker真是个好东西,愿所有新手都学会docker,玩转docker。我也是docker新手一枚
回复

使用道具 举报

2

主题

125

帖子

829

积分

高级会员

Rank: 4

积分
829
金钱
704
HASS币
0
发表于 2017-11-17 11:59:51 | 显示全部楼层
非常感谢,docker就像虚拟机一样,随时可以重建
回复

使用道具 举报

0

主题

27

帖子

111

积分

注册会员

Rank: 2

积分
111
金钱
84
HASS币
0
发表于 2017-11-17 20:08:25 | 显示全部楼层
感谢分享。。。
回复

使用道具 举报

5

主题

188

帖子

1183

积分

金牌会员

小白

Rank: 6Rank: 6

积分
1183
金钱
995
HASS币
0
发表于 2017-11-18 11:34:26 | 显示全部楼层
萝卜大神666
回复

使用道具 举报

16

主题

81

帖子

354

积分

中级会员

Rank: 3Rank: 3

积分
354
金钱
273
HASS币
0
发表于 2017-11-18 20:22:58 | 显示全部楼层
感谢楼主!!!
回复

使用道具 举报

26

主题

552

帖子

1955

积分

金牌会员

Rank: 6Rank: 6

积分
1955
金钱
1398
HASS币
40
发表于 2017-11-18 20:32:48 | 显示全部楼层
楼主够细心~~
回复

使用道具 举报

2

主题

174

帖子

766

积分

高级会员

Rank: 4

积分
766
金钱
592
HASS币
0
发表于 2017-11-20 17:34:23 | 显示全部楼层
看完之后终于懵懵懂懂的明白了什么是docker了,谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-20 19:58 , Processed in 0.069875 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表