您的位置:首页 > 运维架构 > Docker

docker 入门

2016-01-20 00:53 756 查看
http://dockone.io/article/101

build once, configure once and run anywhere

Docker的特性主要包括以下几点:

速度飞快以及优雅的隔离框架
物美价廉
CPU/内存的低消耗
快速开/关机
跨云计算基础构架

三个组件分别是:

Docker Client
 是用户界面,它支持用户与
Docker
Daemon
之间通信。
Docker Daemon
运行于主机上,处理服务请求。
Docker Index
是中央registry,支持拥有公有与私有访问权限的Docker容器镜像的备份。

三个基本要素分别是:
Docker Containers
负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。
Docker Images
是一个只读模板,用来运行Docker容器。
DockerFile
是文件指令集,用来说明如何自动创建Docker镜像

第一章的疑问?

docker index是不是远程的?

文中讲述运行应用程序的步骤不理解,Dockerfile和镜像的关系说的不清楚,怎么每次都推到resiger。
http://dockone.io/article/102
我的理解是命令行就是Docker
Client,通过docker命令行和Daemon沟通。

docker run busybox /bin/echo Hello Docker

通过docker run命令来对此镜像执行命令,执行一次进程也就消失了。

docker commit

是将容器保存为镜像。我理解的是一个容器在没有命令的时候是一个镜像,在运行命令的时候是一个镜像。

docker run -d 的意思是让程序一直在后台运行。

运行容器源于我们在第一步中创建的镜像。当容器被启动后,一个读写层会被添加到镜像的顶层。当分配到合适的网络和IP地址后,需要的应用程序就可以在容器中运行了。

比如

docker run busybox /bin/echo Hello Docker这个命令在顶层echo了之后也就停止了。


我做了一个实验

sudo docker pull busybox

sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")
a9d1

docker commit $sample_job job1

docker run -d 

docker ps

就可以发现job容器在运行。也就是说,你commit时候的容器就是一个镜像,这时如果容器在运行进程,那么这个镜像会连进行一块打包。

但是为什么要连进程一块打包呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: