浅谈DOCKER
Docker的概念
Docker 是一个开源的应用容器引擎
可以让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上
也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 是PaaS提供商dotCloud的开源项目,源代码托管在Github上, 基于go语言。
https://github.com/docker/docker
IaaS是Infrastructure-as-a-Service的缩写,意思是基础设施即服务。————购置或租用虚拟机等硬件来提供服务。
PaaS是Platform-as-a-Service的缩写,意思是平台即服务。————直接定制需要的服务,只需要提供应用和数据即可。
现在知名的云服务提供商:
国际:亚马逊AWS,微软Azure,谷歌Cloud Platform,IBM Bluemix,VMware
国内:阿里云,网易云,腾讯云,百度云
灵雀云,数人云,时速云,道客云
Docker每个镜像相当于一个集装箱。
当我们把配置好的环境交给客户时,我们只需要把镜像发给客户,客户不用再做环境配置的工作,也不用担心使用
起来会和我们这边的环境不一样。其实这个也和虚拟机类似,不过虚拟机运行起来占用资源厉害,启动速度慢,镜
像体积也比较大。
Docker 包括三个基本概念
镜像(Image) 一个只读的模板
容器(Container) 从镜像创建的运行实例
仓库(Repository) 集中存放镜像文件的场所
Docker生态系统
|镜像库
公有 dockerhub
私有 docker registry
------------------------------
|网络(docker1.9之前) overlay / weave / flannel 等软件来提供服务
------------------------------
|容器集群管理监控 (容器编排与管理的系统)
Kubernetes Google开发,基于Go语言
Mesos
Swarm
-------------------------------
|服务发现 etcd / consul / zookeeper
Docker四大特性
Docker容器的秒级启动
Docker容器实现了应用环境的标准化
Docker与mesos.k8s的结合,提供了云服务能力.
Docker的高资源利用率(与虚拟机相比)
Docker的一些基本命令
docker --version
docker search
docker pull
docker images
docker run
docker ps -a
docker commit
docker stop|start
docker exec
docker rm
docker rmi
docker exec