1.什么是docker?
docker是一种容器化技术,具体来说它是将应用程序及其依赖环境打包的一种软件,用于保证开发环境的一致性
2.为什么需要docker?
解决"在我的机器上能跑"的问题,即解决依赖环境一致性问题
3.docker是怎么解决这个问题的?
docker提供将应用程序及其依赖环境打包成镜像,使用容器提供的隔离环境运行应用程序
4.怎么打包?
应用程序的源码全部复制,而依赖环境如特定版本的操作系统、编译器等环境由文字描述记录,在保证轻量的同时确保依赖环境的一致性
5.容器和镜像的关系?
- 镜像是静态文件,包含(一个或多个)应用程序(代码)及其所依赖的环境(文字描述),不可修改
- 容器是镜像的运行实例,容器本身是一个隔离的进程,容器可以执行一个或多个应用程序(进程),使用操作系统提供的隔离机制如cgroups和namespace
6.容器本身也是一个进程吗,那么一个进程里运行着一个进程?
没错,容器本身是一个隔离的进程,这个进程管理着一个或多个程序(进程)
7.容器及其所管理的进程使用的是宿主机的资源吗?
没错,它们使用的是宿主机的cpu、内存等资源
8.容器和虚拟机类似吗
不推荐将容器于虚拟机类比,虚拟机虚拟了cpu等硬件资源,而容器只是做进程的管理,容器的进程隔离使用的仍然是操作系统提供的隔离机制如namespace
推荐学习 https://xxetb.xetslk.com/s/p5Ibb