找回密码
 立即注册

微信扫码登录

搜索
查看: 18851|回复: 19

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

[复制链接]

62

主题

544

回帖

6532

积分

论坛元老

积分
6532
金钱
5851
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!坐等更新~

查看全部评分

回复

使用道具 举报

6

主题

158

回帖

1562

积分

金牌会员

积分
1562
金钱
1398
HASS币
0
发表于 2020-2-21 22:15:07 | 显示全部楼层

感谢分享。。。
回复

使用道具 举报

0

主题

38

回帖

145

积分

注册会员

积分
145
金钱
107
HASS币
0
发表于 2018-3-1 11:26:08 | 显示全部楼层
基础知识一点点的学习
回复

使用道具 举报

42

主题

482

回帖

2547

积分

金牌会员

积分
2547
金钱
2018
HASS币
30
发表于 2018-1-21 21:22:17 | 显示全部楼层
[ 本帖最后由 czweb 于 2018-1-21 21:24 编辑 ]\n\n
为什么 《萝卜的hassbian11.15.zip》的系统,在系统里使用ping局域网其它物理机没有任何反应,直接卡住。ping www.baidu.com可以,ping网关也可以!好像是和桥接有什么关系,百度了好久都没有找到如何设置

请问如何才能正常ping局域网其它电脑?
回复

使用道具 举报

5

主题

135

回帖

448

积分

中级会员

积分
448
金钱
308
HASS币
0
发表于 2018-1-17 10:59:45 来自手机 | 显示全部楼层
非常感谢,docker就像虚拟机一样,随时可以重建
回复

使用道具 举报

2

主题

16

回帖

128

积分

注册会员

积分
128
金钱
110
HASS币
0
发表于 2017-11-28 07:59:13 来自手机 | 显示全部楼层
马住,学习
回复

使用道具 举报

4

主题

528

回帖

4145

积分

论坛元老

积分
4145
金钱
3603
HASS币
120
发表于 2017-11-23 23:21:55 | 显示全部楼层
感谢楼主如此详细的讲解
回复

使用道具 举报

0

主题

11

回帖

52

积分

注册会员

积分
52
金钱
41
HASS币
0
发表于 2017-11-23 10:35:25 | 显示全部楼层
antsunzj 发表于 2017-11-23 09:52
docker的应用,可以节省新手大量花在安装基础应用的时间,让我们更专注的再配置应用方面。有空,可以跟大 ...

很乐意为大家伙做点贡献,目前HA还没搞懂,得花些时间追上大部队
回复

使用道具 举报

62

主题

544

回帖

6532

积分

论坛元老

积分
6532
金钱
5851
HASS币
240

教程狂人论坛风云人物

 楼主| 发表于 2017-11-23 09:52:52 | 显示全部楼层
twowinter 发表于 2017-11-23 09:42
解释地通俗易懂,我也在学习,我的Docker笔记

docker的应用,可以节省新手大量花在安装基础应用的时间,让我们更专注的再配置应用方面。有空,可以跟大家交流一下,docker的使用,我才刚开始学,一知半解。我看了你的笔记,很系统,获益良深。
兄弟,有空可以把一些基础应用定制成镜像,给大家伙们玩玩呀。
尝试过萝卜,我想你一定会忘记青瓜
回复

使用道具 举报

0

主题

11

回帖

52

积分

注册会员

积分
52
金钱
41
HASS币
0
发表于 2017-11-23 09:42:38 | 显示全部楼层
解释地通俗易懂,我也在学习,我的Docker笔记
回复

使用道具 举报

0

主题

155

回帖

834

积分

高级会员

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-9-9 05:49 , Processed in 0.107541 second(s), 13 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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