Docker | 青训营笔记

72 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第2天

运行笔记项目需要docker,特此记录一下。

首先是虚拟技术与容器技术,虚拟技术在模拟物理环境的基础上运行一整个完整的操作系统,容器技术则是进程级别的,使用宿主的操作系统也没有模拟物理环境。可以说,容器是一种打包应用的方式,可以帮你打包应用中的所有软件和软件所依赖的环境,并且可以实现跨平台部署。

其次是docker,docker是用来操控容器的,Docker是容器运行的引擎(容器系统)负责启动容器镜像、运行容器应用和管理容器实例。我们是要透过docker这个应用来使用容器服务。

docker 镜像,就是把一些app及其需要的依赖坏境等打包成镜像,放在本地的镜像由docker管理,远端的镜像例如hub等可以拉到本地,拉到本地后会建立容器把这个镜像中的东西都配置好。我们自己也可以生成镜像,生成镜像的配置文件是dockfile

docker-compose是用来管理多个容器的,通过配置yml文件来完成这件事情。从而让我们不使用shell命令行来启动容器,使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。

容器和 VM 的主要区别:

表面区别:

容器占用体积小,虚拟机占用体积大

隔离性:容器提供了基于进程的隔离,而虚拟机提供了资源的完全隔离。

启动速度:虚拟机可能需要一分钟来启动,而容器只需要一秒钟或更短。

容器使用宿主操作系统的内核,而虚拟机使用独立的内核。Docker 的局限性之一是,它只能用在64位的操作系统上。

本质区别:容器是被隔离的进程