微服务框架
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】
SpringCloud微服务架构
文章目录
- 微服务框架
- SpringCloud微服务架构
- 9 初识 Docker
- 9.3 Docker 架构
- 9.3.1 镜像和容器
- 9.3.2 Docker 和DockerHub
- 9.3.3 Docker 架构
- 9.3.4 总结
9 初识 Docker
9.3 Docker 架构
9.3.1 镜像和容器
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
这样子一个东西就组成了MySQL 应用本身【简单的说,镜像就是硬盘中的文件】
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
注意,容器在运行时,不能往镜像中写东西,变成只读的,我们可以基于镜像 创建容器,然后容器去镜像读数据,但是不能写
将来MySQL 如果想写数据
拷贝一份文件到自己独立的文件系统中,【这就是隔离的特性】,各自容器都在自己的“空间” 执行操作,就不会对其他容器产生影响
记日志也是如此,各记各的
【镜像如何共享使用?】
9.3.2 Docker 和DockerHub
DockerHub:DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。
程序员可以利用Docker 提供的一些命令,去完成镜像的构建,构建出MySQL 、RabbitMQ、Redis、Nginx…等等各种各样的镜像,然后上传到DockerHub 这样的托管平台上【Docker 官方也写了很多优良的镜像放到了DockerHub 上】
国内也有类似于DockerHub 的公开服务,比如 网易云镜像服务、阿里云镜像库等。
【那我们应该怎么样使用Docker 完成镜像构建或者从远端拉取镜像、又该怎么运行容器?】
9.3.3 Docker 架构
Docker是一个CS架构的程序,由两部分组成:
- 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
- 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。
比如docker build
命令到达DockerServer 后,会被一个docker daemon 守护进程去接收和处理,它会利用我们提供的数据,构建出一个镜像image
通过docker pull
命令,命令到达服务端后,守护进程就会去Registry 中拉取指定的镜像 了
通过docker run
命令,它会告诉Server ,要去创建容器,守护进程就会帮助我们完成容器container 的创建
然后部署就完成了
9.3.4 总结
镜像:
- 将应用程序及其依赖、环境、配置打包在一起
容器:
- 镜像运行起来就是容器,一个镜像可以运行多个容器
Docker结构:
- 服务端:接收命令或远程请求,操作镜像或容器
- 客户端:发送命令或者请求到Docker服务端
DockerHub:
- 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry