Docker基础

Docker简介:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:
DockerClient客户端
Docker Daemon守护进程
Docker Image镜像
DockerContainer容器

项目开发中遇到的问题:
大型项目组件较多,运行环境也比较复杂,部署时会碰到一些问题:

  • 依赖关系复杂,容易出现兼容性问题
  • 开发,测试,生产环境有差异

Docker如何解决这些问题:

解决依赖复杂问题:

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 将每个应用放到一个隔离容器去运行,避免互相干扰

解决系统环境不同的问题:

  • Docker将用户程序与所需要调用的系统(比如CentOS)函数库一起打包
  • Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行

Docker架构:

  • 镜像(Image):
    Docker将应用程序及其所需的依赖、函数库、环境、配置文件等打包在一起,称为镜像。镜像是只读的,不可被污染
  • 容器(Container):
    镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
  • 架构,Docker是一个CS架构的程序,由两部分组成:
    服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
    客户端(client): 通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐