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