一.什么是Docker?
1.Docker简介
Docker是一款基于GO语言基于LXC的开源应用容器引擎,其许可协议为Apache2.0,借用网上一句来说就是,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,且其性能损耗极低。
2.Docker架构
一个完整的docker有4个部分:
- dockerClient客户端
- Docker Daemon守护进程
- Docker Image镜像
- DockerContainer容器
Docker 容器通过 Docker 镜像来创建。Docker 使用客户端-服务器 (C/S) 架构模式,可以使用远程API来管理和创建Docker容器。就像安全人员做的测试一样,通常会将客户端和服务端运行在一个机器上。
Images:镜像,用于创建Docker容器的模板
Container:容器,独立运行的一个或一组应用
Client:客户端,通过命令或其他工具使用Docker API与Docker的守护进程通信
Host:主机,一个物理或虚拟的机器来执行Docker守护进程和容器
Registry:仓库,用来保存镜像。(Docker Hub提供了庞大的镜像集合)(https://hub.docker.com)
Machine:一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker。
摘自http://www.runoob.com/docker/docker-architecture.html
3.使用场景
- 自动化测试和持续集成,发布(Automated testing and continuous integration/deploymen)
- 应用的自动化打包和发布(Automating the packaging and deployment of applications)
- 在服务型环境中部署和调整数据库或其他的后台应用(Deploying and scaling web apps, databases and backend services)
- 搭建轻量级,私密的PAAS环境(Creation of lightweight, private PAAS environments)
4.Docker优缺点
优点:
1. 简化步骤
开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到部分 Linux 机器上,便可以实现虚拟化。
2. 打包极为方便
Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
3. 解决硬件问题,节省money
缺点:
1.最为重要一点,Docker基于Linux64位而不是32位,大家不要一开始就掉入坑里。
2.网络管理较为简单,随之带来的是安全问题,一定要重视。
最后,特此声明,此篇文章部分知识文字取于网络,为个人结合自身认知总结,如有冒犯,请联系我