容器技术是虚拟化方案的一种。容器只能运行linux系统,运行在操作系统内核之上。磁盘占用空间小
docker的目标是提供简单的建模方式,性能高,部署应用简单;职责的逻辑分离;快速高效的开发生命周期;鼓励使用面向服务的架构;高内聚低耦合单一任务。
docker的使用场景:使用docker容器开发测试部署服务;创建隔离的运行环境;搭建测试环境;构建多用户的平台服务(P aaS)基础设施;提供软件即服务(SaaS)基础设施;高性能超大规模的宿主机部署。
docker的基本组成:客户端和守护进程(也称服务进程,管理所有容器),镜像(容器的源代码),容器(通过镜像启动)和仓库(保存用户构建的镜像)。
在CentOS中安装docker:sudo yum install docker-io
卸载docker命令
$
sudo yum -y remove docker
Starting the Docker daemon
当 Docker 安装完成之后,你需要启动 docker 进程。
$ sudo service docker start
如果我们希望 Docker 默认开机启动,如下操作:
$ sudo chkconfig docker on
现在,我们来验证 Docker 是否正常工作。第一步,我们需要下载最新的 centos
镜像。
$ sudo docker pull centos
下一步,我们运行下边的命令来查看镜像,确认镜像是否存在:
$ sudo docker images centos
这将会输出如下的信息:
$ sudo docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos latest 0b443ba03958 2 hours ago 297.6 MB
运行简单的脚本来测试镜像:
$ sudo docker run -i -t centos /bin/bash
如果正常运行,你将会获得一个简单的 bash 提示,输入 exit
来退出。
linux主要依赖于linux的两个内核特性:namespace(命名空间) ControlGroups(控制组),docker1.8之后废弃了LCX(Linux Container,即linux虚拟容器技术),引入了基于Go构建的libcontainer的execution driver. 有了libcontainer这个项目, Docker不再需要依赖于Linux部件 ( LXC, libvirt, systemd-nspawn... ) 就可以处理namespaces, control groups, capabilities, apparmor profiles, network interfaces. 这下,LXC沦为可选项