1. 初识Docker


1.1 项目部署的问题

docker 不同宿主机 网络 docker 不同操作系统_Docker


docker 不同宿主机 网络 docker 不同操作系统_docker_02


1.2 Docker如何解决依赖的兼容问题的?

Docker如何解决依赖的兼容问题的?

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

    不同环境的操作系统不同,Docker如何解决?我们先来了解下操作系统结构

docker 不同宿主机 网络 docker 不同操作系统_Docker_03

小结:

docker 不同宿主机 网络 docker 不同操作系统_Docker_04


2. Docker和虚拟机的差别

虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行Ubuntu系统,这样就可以运行任意的Ubuntu应用了。

docker 不同宿主机 网络 docker 不同操作系统_docker_05


docker 不同宿主机 网络 docker 不同操作系统_架构_06


docker 不同宿主机 网络 docker 不同操作系统_容器_07

小结:

Docker和虚拟机的差异:

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统。
  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般。

3. Docker的架构


3.1 镜像和容器

docker 不同宿主机 网络 docker 不同操作系统_架构_08


3.2 Docker和DockerHub

docker 不同宿主机 网络 docker 不同操作系统_架构_09


3.3 docker架构

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server): Docker守护进程,负责处理Docker指令,管理镜像、容器等
  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。

3.4 小结

镜像:

  • 将应用程序及其依赖、环境、配置打包在一起

容器:

  • 镜像运行起来就是容器,一个镜像可以运行多个容器

Docker结构:

  • 服务端:接收命令或远程请求,操作镜像或容器
  • 客户端:发送命令或者请求到Docker服务端

DockerHub:

  • 一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为
    DockerRegistry