《Docker入门实践》笔记(一)

来源:互联网 发布:下载影视新势力软件 编辑:程序博客网 时间:2024/05/22 10:47

Docker背后的想法是创建软件程序可移植的轻量容器,让其可以在任何安装了Docker的机器上运行,而不用关心底层操作系统,就像野心勃勃的造船者们成功创建了集装箱而不需要考虑装在哪种船舶上一样。

Docker两个最重要的概念是镜像和容器。除此之外,链接和数据卷也很重要。

1.  Docker镜像

Docker的镜像类似虚拟机的快照(snapshot),但更轻量,非常非常轻量。镜像拥有唯一ID,以及一个供人阅读的名字和标签对。镜像可以命名为类似ubuntu:latest、ubuntu:precise、django:1.6、django:1.7等等。

镜像必须完全可移植,Docker不允许例外。

2. Docker容器

你可以从镜像中创建容器,这等同于从快照(snapshot)中创建虚拟机,不过更轻量。应用是由容器运行的。容器与虚拟机一样,是隔离的。

与虚拟机相比,容器有一个很大的差异,它们被设计用来运行单进程。Docker设计者极力推崇“一个容器一个进程的方式”。

使用Docker时必须做出的最大思维变化之一就是:容器应该是短暂和容器应该是短暂和一次性的。

3. 数据卷

数据卷让你可以不受容器生命周期影响进行数据持久化。它们表现为容器内的空间,但实际保存在容器之外,从而允许你在不影响数据的情况下销毁、重建、修改、丢弃容器。

卷是针对容器的,你可以使用同一个镜像创建多个容器并定义不同的卷。

4. 容器

容器启动时,将被分配一个随机的私有IP,其它容器可以使用这个IP地址与其进行通讯。要开启容器间通讯,Docker允许你在创建一个新容器时引用其它现存容器,在你刚创建的容器里被引用的容器将获得一个(你指定的)别名。我们就说,这两个容器链接在了一起。


总结: Docker创建镜像、用它们创建容器、在需要时暴露端口和创造卷、通过链接将几个容器连接在一起。

Docker使用cgroup来提供容器隔离,而union文件系统用于保存镜像并使容器变得短暂。容器之所以是短暂的,是因为当你从镜像上创建一个容器,Docker会创建一个空白的union文件系统加载在与该镜像关联的union文件系统之上。当容器停止,该容器的union文件系统会被丢弃,留下的是你启动时的原始镜像文件系统。


0 0
原创粉丝点击