docker 入门

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")
docker commit $sample_job job1
docker run -d 

docker ps

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

但是为什么要连进程一块打包呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值