1、Docker介绍
假如一台物理机器有128核,多个服务可以同时部署在该机器上,每个服务分配不同的核数,比如电商搞活动的时候,下单服务流量会变大,则可以把用户服务的核数临时抽一部分给下单服务,不用去买机器解决这个事;
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;
简单来说就是:
1、可以快速部署启动应用
2、实现虚拟化,完整资源隔离
3、一次编写,四处运行(有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用)
2、为什么用Docker
- 提供一次性的环境,假如需要安装Mysql,则需要安装很多依赖库、版本等,如果使用Docker则通过镜像就可以直接启动运行
- 快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Dokcer快速启动
- 组建微服务架构,可以在一个机器上模拟出多个微服务,启动多个应用
- 更好的资源隔离和共享
一句话:开箱即用,快速部署,可移植性强,环境隔离
3、Centos7安装Docker
阿里云(centos7)安装Docker手册:
https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY
安装yum源:
# yum install epel-release –y
# yum clean all
# yum list
安装并运行Docker:
# yum install docker-io –y
# systemctl start docker
检查安装结果:
# docker info
出现Docker信息
Docker守护进程(后台进程)管理
# systemctl start docker #运行Docker守护进程
# systemctl stop docker #停止Docker守护进程
# systemctl restart docker #重启Docker守护进程
其他centos安装Docker时的一些错误解决方式
https://blog.csdn.net/daluguishou/article/details/52080250
4、Docker镜像、仓库、容器
镜像Docker images:
容器运行时的只读模板,操作系统+软件运行环境+用户程序
容器Docker containers:
通过镜像生成容器
容器包含了某个应用运行所需要的全部环境
仓库Docker registeries:
用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服;
Docker中央仓库:https://hub.docker.com/
三者关系:
```
对比面向对象的方式
Dokcer 里面的镜像 : Java里面的类 Class User.class
Docker 里面的容器 : Java里面的对象 Object new出来的user对象
通过类创建对象,通过镜像创建容器