dockerstart启动所有服务
docker由哪两大部分?
docker由哪两大部分?
它由五部分组成:
1. Docker client client
守护进程
Docker是一个C/S架构的程序。码头工人 s客户端向守护进程发送请求,守护进程处理后返回结果。
Docker客户端可以在后台和远程访问守护进程。
3. Image mirror image of dock workers
映像是容器的基石,容器是基于映像启动的。Image就像容器的源代码,保存了容器启动的各种条件。
Image是一个分层的只读文件系统,其结构如下:bootfs引导文件系统,很像传统的Linux引导文件系统。
Rootfs根文件系统可以是一个或多个操作系统,如Ubuntu或centos,根文件系统只能是只读的。
Union mount联合加载技术,一次将多个只读文件系统加载到rootfs系统上。你在外围看到的只是一个文件系统。联合加载使文件系统的所有层堆叠在一起,因此最终的文件系统包含所有底层文件系统和目录。情况就是这样。文件系统是镜像。
一个镜像可以放在另一个镜像的上面,下面的镜像称为父镜像,以此类推,底部的镜像称为基础镜像,这意味着rootfs。
4. Wharf container
从镜像开始:容器是docker的执行单元。
启动和执行:如果镜像处于构造和打包阶段,则容器处于启动和执行阶段。
容器启动过程:启动时,在镜像的顶层添加一个可写的文件系统,也就是写层。Docker中运行的程序在这一层执行。当docker第一次启动一个容器时,可写层是空的,当文件系统改变时,它将被应用到这个层。诸如如果要修改一个文件,首先将文件从读写层下面的只读层复制到读写层。文件的只读版本仍然存在,但它已经被读写层中的文件副本所隐藏。这是docker的一个重要机制,写时复制。
当创建一个新的容器时,docker会构建一个镜像栈,并在栈顶添加一个可写层。这个读写层和下面的镜像层、配置数据一起构成了一个容器。如下图
5.码头登记仓库
存储用户创建的镜像。仓库分为公有和私有,公有是指Docker hub。
如何给启动的docker添加volume?
默认情况下,Docker卷使用本地文件系统存储,不支持手动配置卷大小。但目前,docker volume支持多种存储后端,
不过目前似乎还没有实现直接支持存储空间的大小。码头工人
Rbd驱动程序可以为每个卷分配20GB的图像,但我没有。;我认为实现定制尺寸并不难。您可以通过-o传递额外的参数,比如size。
存储后端可以根据大小参数分配指定大小的存储。目前volume支持Flocker驱动,已经实现了自定义大小,可以通过-o访问。
size参数指定存储后端包括EBS、Cinder等。不过好像还没有实现对cinder卷的直接管理,但是已经有很多关于device-docker和Cinder的讨论了,是不是poss。Ible in openstack? , persistent volume with OpenStack No.1958 docker/machine GitHub. If there is demand,,您可以手动实现自己的存储驱动器并支持自定义大小。