1.镜像相当于Java的类,容器就是类创建的实例对象。 (容易被误认为是镜像放进容器)
2.通过镜像(里面有你软件如app运行的环境等),通过镜像创建容器,最后Dockerfile就像一个自动化脚本(它主要被用来创建我们之前讲到的镜像)
3.如果你使用的是vscode,非常推荐安装docker的扩展,它会提供dockerfile的语法检测,代码高亮,自动补全等等
Run是创建镜像的时候使用的(支持shell命令如pwd、pip等),而CMD是运行容器时候使用的
到这里我们自动化脚本Dockerfile就完成了
接下来我们可以使用docker build来创建一个镜像
这个 “.”不能省略,第一次调用docker build 会比较慢,因为Docker会下载必要的镜像文件,然后一行行运行Dockerfile里面的指令,不过再次调用就会快很多,因为docker会缓存之前的每一个操作
这个缓存操作在Docker中也被称为分层,这里我们就不展开讨论了
下载好了镜像以后我们通过docker run 来启动一个容器,这里需要注意的是这个-p参数,它会将容器上的某一个端口
它会将容器上的某一个端口映射到你的本地主机上,这样你才能从主机上访问容器中的Web应用
docker run -p 80:5000 -d my-finance
(前面的80是我们本地主机上的端口,后面是容器上的端口,这个不要搞反了)
如果不出意外的话, 你已经可以在游览器中访问这个Web应用了
后续还有精彩内容比较关于前后端分离,感兴趣可以去参考资料中的视频链接学习。
参考资料