1.项目部署中的问题
大型项目组件较多,运行环境也较为复杂,部署时候会碰到一些问题:
a.依赖关系复杂,容易出现兼容性问题
b.开发测试生产环境差异
2.LINUX操作系统
a.所有的linux内核系统可以分为两层,内核 上层应用。内核和计算机硬件交互,通过指令交互。
b.系统应用封装内核指令为函数,便于程序员调用
c.用户程序基于系统函数库实现功能
d.ubuntu和Centos是基于Linux内核,只是系统应用不同,提供的函数库有差异。
3.Docker如何解决依赖兼容问题?
a.将应用的Libs(函数库)、Deps(依赖)、配置和应用一起打包,形成可移植镜像
b.运行在容器中,使用沙箱机制,相互隔离
b.将每个应用放到一个隔离的容器去运行,避免相互干扰。
4.Docker如何不同系统环境的问题?
a.Docker将用户程序与所需要调用的的系统函数库一起打包,包含完整运行环境。
b.Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行。
Docker是一个快速交付应用、运行技术的技术:
将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统。
运行时利用沙箱机制形成隔离容器,各个应用互不干扰。
5.Docker与虚拟机
虚拟机是在操作系统中模拟硬件设备,然后运行另一个操作系统,就可以运行任意的对应版本linux应用。
特性 Docker 虚拟机
性能 接近原生 性能较差
硬盘占用 MB一般 GB一般
启动 秒级 分钟级
服务部署一般选择docker 而不是虚拟机。
docker是一个系统进程,悉尼及实在操作系统中的操作系统
docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢‘性能一般。
6.Docker架构
Docker是一个CS架构的程序,有两部分组成:
服务端 server:Docker守护进程,负责处理Docker指令,管理镜像容器等
客户端client:通过命令或者RestAPI 向Docker服务器发送指令,可以在本地或远程向服务端发送指令
镜像Image:将程序及其依赖、运行环境一起打包在一起,称为一个镜像。
容器Container:镜像中应用程序运行形成的进程就是容器,DOCKER会给容器做隔离,对外不可见。
镜像是只读的,可以基于镜像创建容器,不会对别的容器产生影响
Docker和Dockerhub
Dockerhub是一个Docker镜像的托管平台,这样的平台称为Docker Registy。
7.Docker安装
略。