我clone的angular项目里有个dockerfile和docker-compose,我想问下这个项目的dockerfile是构件一个docker镜像,这个镜像的作用就是,
如果我当前机器里没有一些不要的环境,比如nodejs,我运行这个镜像的容器后我还是可以运行这个项目对吗?
我所理解的docker-compose是编排容器的。例如,你有一个php镜像,一个mysql镜像,一个nginx镜像。如果没有docker-compose,那么每次启动的时候,你需要敲各个容器的启动参数,环境变量,容器命名,指定不同容器的链接参数等等一系列的操作,相当繁琐。而用了docker-composer之后,你就可以把这些命令一次性写在docker-composer.yml文件中,以后每次启动这一整个环境(含3个容器)的时候,你只要敲一个docker-composer up命令就ok了。所以说,只要你在docker-compose中有有所需要的环境代码,就可以在机器里运行这个项目
你需要理解清楚几个关键的概念:
1. (docker)镜像
2. (docker)容器
软件及其**所有**依赖按照某种协议进行打包后得到的压缩文件, 此镜像文件可以在任何支持容器的主机中运行,并且应该具有相同的运行表现.
可以类比虚拟机的镜像文件.
依据一个容器镜像文件,构建一个具有一定隔离的独立轻量的运行环境, 并在此环境中执行镜像内的软件. 可以类比运行的虚拟机实例.
然后再说dockerfile, docker-compose
定义了一系列构建容器镜像规则的文件, 即依据此文件可以生成一个镜像. 这个镜像可以用来运行容器.
容器编排工具. 一台(或多台)主机上可以运行很多很多容器,他们一般需要协同工作.所以其网络端口,挂载的主机文件等都需要配置,
容器运行中可能需要从一台主机迁移到另一台主机.
容器编排工具即是用来简化容器配置和容器调度的.