最近学习MachineLearning,发现很多人都在用docker。我以前听说过,但我觉得这与我无关。但是现在发现docker就是这么方便的东西,可以跨平台运行(不管是什么版本的linux,甚至是mac和windows)。所以这里写一篇文章记录下学习心得。参考:DockerCompleteGuide参考:Gitbook-Docker——从入门到实践,别提那些难懂的名词。用简单的英语来说:Docker是一个LinuxLiveCD系统。和USB系统一样,它有完整的系统文件目录和程序。.我们可以在这个与外界隔绝的便携式系统中自由读写,但每次进入它时,它都会恢复到原来的状态,就好像什么都没发生过一样。我们可以自定义这个小系统默认安装什么软件,就像自定义LiveCD或者WinPE一样。一旦定制,它是不可变的并且非常稳定。刚开始理解Docker的逻辑比较混乱,比较难理解,感觉大家都说太复杂了。后来才发现,它的运行逻辑其实很简单。其实你可以把Docker当成电脑上安装Linux系统时的LiveCD,或者当Windows用USB安装系统时当成WinPE。这将使它更容易理解。回想一下,当你在PC或虚拟机上安装Linux系统时,总会有一个LiveCD选项。即不安装任何东西直接进入系统,所有工具都可以使用,所有软件都可以安装,所有配置也可以更改。只是重启之后,所有修改的地方都会恢复到原来的状态。每个指南都会提到这三个基本概念:ImageImage相当于系统光盘的ISO镜像文件,是只读的。可以直接在图像中无障碍的进行各种操作,感觉就像进入了_LiveCD_系统。只是退出时所有操作都会消失,下次进入图像时,还是和最初一样。Container容器就像是给“ISO文件”加了一层可读写的外衣。所有的改变都会保存在Container中,但是图片还是图片,不会改变。就像你可以随意换衣服,但你的身体是不会改变的。WarehouseRepo泛指Dockerhub,和Github一样是一个网站,只不过它收集的不是代码,而是各种镜像。您可以随意上传和下载各大厂商或个人制作的图片。安装DockerDocker分为CE和EE两个版本,一个是社区免费的,一个是商业付费的。参考官方:关于DockerCE在Ubuntu上安装Docker。参考官方安装步骤:GetDockerCEforUbuntu准备工作:#安装SSL相关,让apt通过HTTPS下载:sudoapt-getinstallapt-transport-httpsca-certificatescurlsoftware-properties-common#添加docker的GPGkeycurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-keyadd-#检查密钥是否匹配(9DC858229FC7DD38854AE2D88D81803C0EBFCD88)sudoapt-keyfingerprint0EBFCD88#Adddockeraptdownloadsourcesudoadd-apt-repository"deb[arch=amd64]https://download.docker.com/linux/ubuntu$(lsb_release-cs)stable"#Updatesourcesudoapt-getupdate安装docker:$sudoapt-getinstalldocker-ce卸载Docker:$sudoapt-getremovedockerdocker-enginedocker.io在Mac上安装Docker直接下载应用程序:在RaspberryPi上安装DockerRaspberryPi基于ARM架构,与PC不同。所以有些docker镜像即使可以在树莓派上制作出来,也无法在其他PC上运行。反之,其他PC上的docker镜像无法在树莓派上运行。如果需要找树莓派的专用镜像,可以在Dockerhub上搜索ARM或者Rpi找到。有一个叫Hypriot的仓库,出过很多树莓派的docker,大家可以参考一下。在RaspberryPi上安装Docker最困难的部分是正确选择源并添加GPG密钥以查找和下载适当版本的Docker。这个过程非常繁琐,很难有统一的解决方案。另外:官方一键安装版已过期。必须手动完成。参考另一篇笔记:在树莓派上安装Docker运行Docker【Imageuploadingoutsidethesite...(image-e81557-1548159126389)】CreateaContainercontainerfromtheImageimage:#CreateanewContainercontainer(ifthereisanimage本地,直接Createfromit,如果没有,从网上下载)#进入doke的shell-t,即进入一个虚拟系统,有自己的/root文件系统结构$dockerrun-it
