Docker是一个轻量级的环境隔离工具,可以把程序和它运行所需要的所有依赖打包成一个独立的镜像文件,然后在任何支持Docker的系统(WSL、Linux、Windows、Mac)上通过这个镜像创建容器来运行程序--容器里的环境是完全独立的,和你本地的系统、软件、虚拟环境没有任何关联。
Docker核心概念理解
1、镜像(Image)=预装了所有软件的 系统安装包
开发者提前编译好的完整包,这个包是只读的,能在任何Docker环境中复用,保证在哪运行,环境都完全一样。
2、容器(Container)=用 安装包 启动的 独立小程序
通过镜像创建容器,就相当于用这个预装的环境包,启动了一个专门运行的独立进程--容器有自己的文件系统、环境变量。
容器里装软件、改配置,不会影响你本地的任何文件和环境;
本地的系统更新、软件安装,也不会影响容器里;
容器可以随时启动 / 停止 / 删除,删除后不会在本地留下任何垃圾文件。
3、挂载(Volume)=容器和本地的 文件传输通道
Docker 容器默认是隔离的,无法访问你本地的文件,挂载 就是给容器开一个专属通道,把你本地的目录和容器内的目录绑定,让容器能读取本地的文件,同时容器运行产生的成果也会同步回本地目录。
Docker 和conda 虚拟环境的核心区别:

Docker 不是虚拟机,比虚拟机更轻量
- 传统虚拟机:需要模拟完整的硬件,安装完整的操作系统,启动慢(分钟级),占用资源多(几 GB 内存);
- Docker 容器:共享宿主系统的内核,不需要模拟硬件,仅运行程序和必要依赖,启动快(秒级),占用资源极少(几百 MB 内存)。