Docker学习记录
问题1:docker中容器和镜像的关系?
回答:简单点说,镜像就类似操作系统光盘介质,容器相当于通过光盘安装后的系统。通过光盘(镜像),我们能在不同机器上部署系统(容器),系统内的操作只会保留在当前的系统(容器)中,如果要升级系统,需要使用到光盘,但是可能会导致操作系统的数据丢失。
问题2:我个人对docker的认识。
之前做一些学校的项目,需要用到github的程序,用别人的程序就要配置相应的环境,linux相对简单,但是windows很麻烦,而且不一定兼容。Docker给我的感觉就是,自己做一个隔离的系统,大家电脑的配置不一样(硬件配置一样),但是使用相同的镜像文件都可以跑项目,比虚拟机更加灵活、占用资源更少。
问题3:比如我现在有一个项目,使用cpu python 环境下配置pytorch等包工具后,进行图像分类识别任务,如何搭建一个这样的镜像?换成其他项目又如何搭建?
例子1:系统中有一个python文件,现在要求使用一个python镜像来跑一下这个程序
使用docker images 命令查看所有的镜像,发现当前镜像库中有python3.6,我想直接调用,docker run –v –w,参数-v –w的理解:
-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径
-w参数,是指定为当前镜像工作目录
在本例当中就是file文件夹挂载到容器myapp文件下,然后-w指定容器的工作路径,实例化镜像或者说是使用镜像创建一个容器,python:3.6,命令python docker_hello.py运行,输出运行结果。
例2:系统中有一个python项目,如分类识别项目,需要用到pytorch等扩展包,要求自己搭建一个镜像来运行这个项目
在当前的虚拟机环境中,我使用python3.6,这个项目是可以正常运行的。
然后我尝试直接使用镜像python3.6,报错缺少torch模块。
需要对当前的镜像python:3.6,进行一些操作,使当前的demo能够跑起来。
例3:使用Dcokerfile制作镜像 ,以ubuntu