什么是Docker

1.什么是docker?

docker是一种容器化技术,具体来说它是将应用程序及其依赖环境打包的一种软件,用于保证开发环境的一致性

2.为什么需要docker?

解决"在我的机器上能跑"的问题,即解决依赖环境一致性问题

3.docker是怎么解决这个问题的?

docker提供将应用程序及其依赖环境打包成镜像,使用容器提供的隔离环境运行应用程序

4.怎么打包?

应用程序的源码全部复制,而依赖环境如特定版本的操作系统、编译器等环境由文字描述记录,在保证轻量的同时确保依赖环境的一致性

5.容器和镜像的关系?

  • 镜像是静态文件,包含(一个或多个)应用程序(代码)及其所依赖的环境(文字描述),不可修改
  • 容器是镜像的运行实例,容器本身是一个隔离的进程,容器可以执行一个或多个应用程序(进程),使用操作系统提供的隔离机制如cgroups和namespace

6.容器本身也是一个进程吗,那么一个进程里运行着一个进程?

没错,容器本身是一个隔离的进程,这个进程管理着一个或多个程序(进程)

7.容器及其所管理的进程使用的是宿主机的资源吗?

没错,它们使用的是宿主机的cpu、内存等资源

8.容器和虚拟机类似吗

不推荐将容器于虚拟机类比,虚拟机虚拟了cpu等硬件资源,而容器只是做进程的管理,容器的进程隔离使用的仍然是操作系统提供的隔离机制如namespace

你可能感兴趣的