Docker说明、安装(Windows10家庭版)
Docker是什么?它是干嘛的?
开始,我就知道别人说是用来加工tar包的。tar包?又是干什么用的?
tar包,个人粗俗的理解就是一个环境,里面有能让程序运行起来所需要的依赖。比如我们常使用anaconda定义一个环境:
conda create --name *** python=*.*.* #如conda create --name env_name python=3.7
这里的env_name 就是一个环境(名),python就是一个依赖。当然,一个程序特别是深度学习的肯定还会用到其他依赖,如pytorch、tensorflow、pillow、opencv等等,这些依赖都可以安装在env_name这个环境下。
如果现在有另外一台机子没有安装python,更不可能有上面的依赖,而我想把一个能在env_name 环境下运行的程序放在这个机子上运行起来应该要怎么做呢?你可能会想到在这个机子上安装与env_name一样的依赖,然后运行该程序,确实可以这样做。但是否也可以通过类似镜像的方式将env_name 环境直接移植到这台机子上呢?答案是可以的。先来说下tar包:
tar包就是将环境(有很多依赖)打包成.tar形式的文件格式,如tar包可以命名为cuda11.1-torch1.10.1-py37.tar,这个.tar文件里有env_name环境里的所有依赖。有了tar包之后就可以将这个tar包导入到Docker中,更确切的说,是使tar包在Docker里生成一个镜像,这样就能让相同的程序在这台机子上运行了。
更灵活的是,Dokcer(执行的linux语句,但这个Docker可以在windows里安装,相当于一个虚拟机),可以对已有的镜像(其实还要生成容器,不用担心容器又是什么,你暂时理解镜像相当于Java中的类,容器是这个类实例化后的对象,即容器是继承了镜像的所有东西,当然也就包含了所有依赖)进行二次依赖的安装,比如cuda11.1-torch1.10.1-py37.tar里缺少tqdm这个依赖,那么Docker可以在容器里安装tqdm。
现在来看看百度百科对Docker的解释:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
再联系我在上面作出的讲解,您是否对Docker有了较为清晰的认知呢。
Docker安装(Windows10家庭版)
Windows10家庭