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