Docker从入门到放弃二
1.前言
今天上课,老师演示的时候用到了Docker,心血来潮,自己也尝试着在本地用Docker配环境七搞八搞,体验了一番,体验下来,比起以前在Windows上体验虚拟机来说,要舒适的太多了。也推荐大家都来尝试一下。
1.Container与本机传递文件
首先遇到的难题便是这个,使用虚拟机的时候,我们不免总是需要从本机传一些文件到虚拟机上,那么同样的,在Container上我们也会遇到同样的问题。命令docker cp filepath Containername:targetpath
,其中filename是指本地的文件的地址比如/home/XXX/XXX.md相信大家也都比较熟悉了,targetpath则是指你想上传到容器的哪一个位置(这里要使用绝对路径,不可以使用~)。注意完成是没有提示的,我们可以到Container中去查看。
逆操作就是从Container传文件到本机了,直接将地址互换即可docker cp Container:filepath targetpath
需要注意的是,此时Container应该处于运行状态。
2.将Container转化为image
这一点也是比较重要的,举个例子来说明的话,假设说我现在要在Centos镜像生成的容器上配置一个深度学习的环境。之后我要是想要在这个深度学习环境的基础上在增添配置的话,总不能再配一遍环境吧,这就跟Docker的初衷相违背了。
所以我们也还是可以在现有Container的基础上创建一个image的。具体的命令就是docker commit Containername targetname
如图所示,根据Operator创建出一个名为test的image,我们还可以使用target name:tag
的形式为自己的image设定一个标签。
不过需要注意的是,此时生成的image仅仅只是在自己的本地,其他人是看不到的,那么问题来了,自己搞得image这么好,其他人不知道怎么行(当然是为了分享了)。那么首先我们要进行登录docker hubdocker login
,然后我们需要更改自己准备上传的Container的名字,修改为自己的dockerusername/imagename
的形式(不然会上传失败,此步骤一定要有)命令:docker tag imagename targetname:tag
。然后就是docker push imagename
就可以了,但是我们需要注意的是,docker毕竟是国外的网站,同时docker的服务器也在国外,所以上传的速度可以说是感人至深了。所以我们要采取特殊的办法,阿里云加速。使用方法上几乎没有什么差别,只是想当于我们push的变成了阿里云的仓库地址,十分简单易懂,所以在这里就不再赘述,大家前往阿里云教程自行查看就好,十分容易。
仔细想了想,自己还没接触过的操作,就不再这里跟大家介绍了,等之后用到的时候再来更新,先到这里~。
转载:https://blog.csdn.net/qq_40184139/article/details/104422203