听说这玩意很好玩
linux吧
全部回复
仅看楼主
level 11
Guanrenfu 楼主
[咦]我就想知道一个镜像占用多大空间,另外我好像还不是很明白原理……总之好像挺强大的[太开心]
2015年10月17日 06点10分 1
level 13
早就玩過了,但是對於普通用戶來說沒啥用,就沒玩下去了[滑稽]
2015年10月17日 06点10分 2
[乖]然而我写程序哦
2015年10月17日 06点10分
@Guanrenfu 大神,您好膩害[乖]
2015年10月17日 06点10分
@nrechn [委屈]很弱的啦
2015年10月17日 06点10分
level 8
[吐舌]有不懂的问我
2015年10月17日 06点10分 3
[惊哭][乖]
2015年10月17日 06点10分
我正在跟着官方教程跑中[乖]
2015年10月17日 06点10分
@Guanrenfu 等你用到pull命令的时候一定会遇到困难
2015年10月17日 06点10分
@绅士喵i5 [怒]比如2KB/s的速度吗?
2015年10月17日 06点10分
level 8
回复 Guanrenfu :当然是官方文档了,docker入门以后基本就很容易掌握了。难点是如何利用docker。例如构建复杂的集群环境,异构性系统等等。当然把docker当做某一个软件也听方便的。例如mysql的容器就当装了一个mysql而且还和系统隔离,一键安装 。开发学习 部署啥的都非常方便 反正我是离不开了
2015年10月17日 07点10分 4
[吐舌]听起来不错,那么我就算入门了?[乖]
2015年10月17日 07点10分
@Guanrenfu docker中的一些重要概念、基本命令的使用、能写Dockerfile自己构建较为复杂的环境镜像。能用第三方工具弥补docker网络缺陷,就已经完全入门了。
2015年10月17日 07点10分
@Guanrenfu 例如oracle数据库安装麻烦吧?,特别是没图形的情况下,浪费精力吧?还说不定安装不成功。 那时候,想装一个什么东西,第一个想到的就是去docker-hub上看看。但是docker只需要一条命令拉取别人封装好的oracle镜像,一条命令运行oracle容器 一切搞定。
2015年10月17日 07点10分
@绅士喵i5 [太开心]原来可以这样,got it~[勉强]
2015年10月17日 08点10分
level 11
Guanrenfu 楼主
@绅士喵i5 碰到几个小问题[乖]
1、Docker运行bash等软件时到底是什么原理?类似chroot?
2、使用Docker运行的程序和普通的程序有区别吗?比如说我使用Docker运行一个MySQL和我本地安装的有区别吗?
3、Docker对于磁盘占用、内存占用是多少呢?以及会不会对应用性能产生影响?
2015年10月17日 09点10分 5
话说我才刚弄懂容器和镜像的区别以及他们都是干嘛的……
2015年10月17日 10点10分
@Guanrenfu docker容器和宿主机共享系统内核,与其说是虚拟化更恰当的是类似沙箱的进程、网络、IO等的隔离。虚拟化的代价是非常小的。如果你去docker-hub上看看,很多做得很好的镜像体积相当小,可以达到100M以内,仅仅包含所需要运行软件的依赖库而已。
2015年10月17日 10点10分
@绅士喵i5 [乖]原来如此
2015年10月17日 10点10分
@绅士喵i5 大神,能不能用来跑多版本python?
2015年10月17日 10点10分
level 11
还是习惯lxc
2015年10月17日 10点10分 6
level 12
容器[惊哭]
2015年10月17日 12点10分 8
[乖]盆碗盘杯子锅……
2015年10月17日 12点10分
@Guanrenfu 夜壺[滑稽]
2015年10月17日 12点10分
@1715849210 [阴险]太平洋
2015年10月17日 12点10分
@Guanrenfu 那是地球[滑稽]
2015年10月17日 12点10分
level 10
和我没关系的东西不用
2015年10月17日 13点10分 9
level 11
Guanrenfu 楼主
我来说下我对于镜像和容器的理解,看看我说的对不对哦[乖]
镜像是一个和ISO镜像类似的东西,包含了各种配置文件和可执行文件什么的(我解包过一个镜像看过了,看起来和Arch的包差不多,也是usr, etc什么的)。镜像是只读的,pull的作用就是从DockerHub下载一个镜像。镜像由Dockerfile创建。
容器使用时将读取镜像的文件,类似LiveCD一般。也正如LiveCD,所有的更改都只作用与容器,对镜像没有丝毫影响。容器的内容可以用commit命令写入镜像。
不过我还是不懂,那么空间的占用是怎样呢?容器会占用内存的空间吗?关闭的容器是否会占用空间呢?[疑问]
2015年10月18日 03点10分 10
level 8
一般官方之作的镜像都很小的,例如我的机器上的:
python官方不知道搞得什么鬼,镜像分各种版本:
有小到76MB的苗条版本
有大到吓死人的900MB+的版本,说实话极少会见到那个官方制作的Image会这么大
2015年10月18日 04点10分 12
[阴险]我现在都没明白Python的那几个版本是干嘛的
2015年10月18日 04点10分
另外我也搞不懂为什么我作出一点小改动image就会加大许多,在SO上找到个问题,不过看的一知半解的http://stackoverflow.com/questions/24394243/why-are-docker-container-images-so-large
2015年10月18日 04点10分
@Guanrenfu 你想让Image体积尽可能小的话,那你exit容器之前自己手动精简容器系统,删除些不必要的东西之类的。说不定能小点。不过写Dockerfile才是王道
2015年10月18日 05点10分
@Guanrenfu 不过自己制作的镜像体积我是无所谓,反正不是发布出去让别人用
2015年10月18日 05点10分
level 8
至于容器和镜像的区别,你的理解大致是对的。
容器运行和镜像是分离的,
虽然容器是基于镜像运行起来的,但是容器的变化不会使镜像产生改变,
想二次修改镜像,只需要记住容器的ID,commit 即可产生一个从容器运行中构建的新镜像。
但是这样做镜像体积总会很大,例如一个ubuntu官方的镜像可能就100多MB,但是你bash进容器以后,exit,再基于容器提交构建新镜像,新镜像的体积就可能变成300MB以上。
起始容器和镜像不必要有那么明显的区分。
镜像运行起来就是容器。容器就是镜像运行中的实例。
容器的基础镜像不会被容器更改,同一个基础镜像运行起来的容器越多,容器之间复用的元素就越多,代价就越小。这一点在集群时是非常方便的
2015年10月18日 04点10分 13
嗯,明白了。那么为什么镜像体积会变那么大?
2015年10月18日 04点10分
@Guanrenfu 可能是系统运行过程中产生的临时文件也被打包了吧,具体原因我也不清楚.... 反正我发现在docker-hub上的镜像只要不是写Dockerfile构建而是基于容器提交构建的体积普遍都偏大
2015年10月18日 04点10分
level 11
大神[惊哭]
2015年10月18日 05点10分 14
1