目录
1.Docker容器(非常方便 方便部署服务):
容器的理解(计算机中的计算机):
在 Docker 中,容器通常被描述为轻量级的、可移植的、自包含的软件单元。从某种程度上来说,你可以将容器类比为计算机中的计算机,因为它们具有自己的文件系统、进程空间、网络配置和资源隔离。但是,容器与传统虚拟机不同,虽然它们提供了一种类似的隔离和独立性,但它们不需要运行完整的操作系统内核,因此更加轻量级。
每个容器都可以看作是一个独立的运行环境,其中可以运行一个或多个进程。容器之间是隔离的,它们共享主机的内核,但拥有自己的文件系统和系统资源。这使得容器非常适合于部署和运行应用程序,因为它们可以在任何支持 Docker 的系统上运行,而不受底层操作系统的影响。
因此,虽然容器可以类比于计算机中的计算机,但它们更像是独立的、可隔离的运行环境,而不是完整的虚拟计算机。
————————————————————————————————
部署时 docker会从 Docker Hub 上下载镜像,同类型下载一次即可。
运行时会创建一个隔离的环境,称为容器。(不同进程互不干扰)
容器也会有IP地址,对外隔离。虚拟机的IP可PING通,虚拟机中容器的IP地址PING不通。所以将容器的端口映射到宿主机(虚拟机)的指定端口,可供外界访问。
Docker部署安装的常用命令:
-- --- --- --- -- ---
docker(创建容器) run (运行容器) -d(后台执行)
--name xxx(给容器命名)
- e xxxx (与镜像对应的环境变量)
- p xxxx : xxxx(后面的容器端口一般默认为镜像的默认端口,如mysql 默认为 3306,nginx默认为80 , tomcat 默认为 8080)
镜像名称 : 版本号(版本号可以省略,默认最新)
_________________________________________________________
docker run 会创建并运行容器,和docker start 不同,第二个不会创建,只会运行已有的容器。
——————————————————————————————————————————
数据卷---->一个虚拟的目录,容器的目录与宿主机目录之间映射的桥梁。 从而可以通过简易的宿主目录操作,使得容器的内容发生改变。
Dockerfile 一些指令,帮助构建镜像。
docker可以自定义一个网络(网段),在连接到同一个自定义网络的容器之间可以互相使用容器名访问,而不用考虑IP地址的变化。 !!默认的网段内的容器不可以直接通过容器名访问。
Docker部署项目的流程:
一.java后端服务
1.利用dockerfile 和打包好的 jar包 创建一个 Docker镜像。
2.直接run 一个 docker容器,并设置在自定义的网段中。
二.前端
1.复制进去静态资源配置文件等
2.拉取nginx镜像
3.创建nginx容器,要把本地目录(静态资源)挂载到容器的相应位置
三.数据库
和前端部署类似都要挂载静态资源,从而创建容器时,容器内会直接有相应内容。
2.消息中间件
服务的同步调用和服务的异步调用
MQ就是消息代理,存防消息发送者发过来的消息。
RabbitMQ
kafka 吞吐量大 可靠性相对低 RabbitMQ(最常用) 和RocketMQ(阿里研发) 可靠性高