Docker hub的php官方镜像https://hub.docker.com/_/php/
使用说明有这么一段:
如上图红框中所示,
大概意思是让我在php代码目录新建一个Docerfile,然后把代码和下载的php镜像打包到一起构建一个新的镜像,是这意思吧?
那这镜像好大,并且,为什么要放到一起?分开不是很好吗?
没太理解,是我理解错了?
放到一起更新代码和php都不方便,docker不是推荐每个服务分开放置吗?为什么这里要这么做?请大神帮解释一下。
Docker hub的php官方镜像https://hub.docker.com/_/php/
使用说明有这么一段:
如上图红框中所示,
大概意思是让我在php代码目录新建一个Docerfile,然后把代码和下载的php镜像打包到一起构建一个新的镜像,是这意思吧?
那这镜像好大,并且,为什么要放到一起?分开不是很好吗?
没太理解,是我理解错了?
放到一起更新代码和php都不方便,docker不是推荐每个服务分开放置吗?为什么这里要这么做?请大神帮解释一下。
大概意思是让我在php代码目录新建一个Docerfile,然后把代码和下载的php镜像打包到一起构建一个新的镜像,是这意思吧?
是这个意思,你的理解没有问题
那这镜像好大,并且,为什么要放到一起?分开不是很好吗?
可以分开,也可以不分开,取决于你的需求。
不分开就是在Dockerfile中COPY文件夹进去,分开的话在run镜像的时候指定-v挂载本地文件夹。
比如你做了一个外包项目,你把代码打包在镜像里面,再把镜像发给别人,这种情况下你不用分开。
如果你在开发项目的过程中,你把代码和运行环境分开的话才能更好的开发,否则每次改一下代码就要打包一下。
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
2 回答795 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
看来题主不怎么理解Docker的运行模式啊。
首先,这是使用Dockerfile构建镜像的过程,第一句
表示了这个镜像构建自官方的
php:5.6-cli
镜像的基础之上。好了,基于这个Dockerfile,使用
docker build
命令就可以构建一个新的镜像了。容器是基于镜像启动的,一个镜像可以启动多个容器。
COPY
指令将当前目录的代码放进了容器内部的目录下,且设置了WORKDIR
具体含义请参考官方文档。最后的
CMD
命令是容器启动时的要执行的bash命令。好了,至此,整个大概的流程就是这样。
在Docker的工作机理上来说,容器基于镜像启动之后,其与宿主机之间是隔离的,所以,你得把代码放进容器内部才能使用内部的
PHP
环境。多个容器之间为了绕过联合文件系统,达到文件的共享的话,请参阅VOLUME
指令。