建立于: 7年前 ( 更新: 7年前 )
使用情境
在Docker的世界,我们透过Dockerfile创建image ,并且透过docker commit生成新的image,
再把image push到Docker registry。(例如:Docker Hub)。
我们会在docker-compose的yaml档去定义service及要使用的image,
因此当我们运行
docker会检查docker-compose.yml内设置的image是否已存在我们的系统中,
如果没有,就进行下载,然后用该image为样版(image是一只读的样版),创建出container(容器)。
再把image push到Docker registry。(例如:Docker Hub)。
我们会在docker-compose的yaml档去定义service及要使用的image,
因此当我们运行
docker-compose up
时,docker会检查docker-compose.yml内设置的image是否已存在我们的系统中,
如果没有,就进行下载,然后用该image为样版(image是一只读的样版),创建出container(容器)。
D-Laravel
在dlaravel的骨子里,就是docker,只不过多了简易的bash让我们快速用docker的命令生成contaner。
大家或许会好奇为何要用bash,因为我要让大家可以去检视及了解D-Laravel是如何运行(如果您想了解)。
话说回来,也就是说当我们下了
因此如果我们已下载过了某一个image,像是deviny/fpm:7.2.17,下次启动docker-compose就不会再下载该image来创建container了。
那我们如何透过命令的方式来更新这个调整过的image到自己的电脑呢?
我们可以用命令 docker pull deviny/fpm:7.2.17来进行更新。
关於D-Laravel的Image,应该尽量使用最新版的PHP版号为主,
主要会有PHP本身安全性及Bug的修正,包含了D-Laravel运作环境的一些更新及调整。
虽然D-Laravel的image中提供很多不同的PHP版号的tag...
https://hub.docker.com/r/deviny/fpm/tags/
大家或许会好奇为何要用bash,因为我要让大家可以去检视及了解D-Laravel是如何运行(如果您想了解)。
话说回来,也就是说当我们下了
./console up
的命令时, 他就是运行docker的官方命令docker-compose up -d
因此如果我们已下载过了某一个image,像是deviny/fpm:7.2.17,下次启动docker-compose就不会再下载该image来创建container了。
那我们如何透过命令的方式来更新这个调整过的image到自己的电脑呢?
我们可以用命令 docker pull deviny/fpm:7.2.17来进行更新。
关於D-Laravel的Image,应该尽量使用最新版的PHP版号为主,
主要会有PHP本身安全性及Bug的修正,包含了D-Laravel运作环境的一些更新及调整。
虽然D-Laravel的image中提供很多不同的PHP版号的tag...
https://hub.docker.com/r/deviny/fpm/tags/
例如:
php 7.1.7及php 7.1.28 建议选择7.1.28
或
php 5.6.30及php 5.6.31 建议选择5.6.31
我们应该采用较新的版本在自己的docker-compose-custom.yml设置中。
如果您的D-Laravel数据夹,没有docker-compose-custom.yml,可以透过./console custom 来生成及使用。
如果您发现D-Laravel中有些image内的php扩展是不能用的,例如,在其他的平台上PHP可以运行,
但是D-Laravel上无法运行,欢迎开PR给我,或是在D-Laravel的专属聊天室中评论哦,我会视情况新建这个扩展。
那如何更新我们已使用中的image呢 (相同tag名称的image)?
例如,依deviny/fpm:7.1.8的image为例,可以尝试看看,git pull deviny/fpm:7.1.8
$docker pull deviny/fpm:7.1.8
7.1.8: Pulling from deviny/fpm
Digest: sha256:3b3f9c98bd143c1487c70fa9b072dd95915aaec84b1ab8b1de61940dd015bf55
Status: Image is up to date for deviny/fpm:7.1.8
基本上D-Laravel的image同版号变更的频率很低,除非您真的使用上碰到一些问题,例如某些扩展无法使用,否则您无需进行此动作。
如果有较新的tag时,可以直接使用较新的tag,例如: deviny/fpm:7.1.9
在新版本的D-Laravel中,我们可透过./console ext查看目前安装已编译的php外挂有那些。
重建自己专有的image
当然,您绝对可以重建自己的D-Laravel使用的php-fpm image, 来符合您自己的环境需求。步骤如下:
#在D-Laravel的目录运行
cd dockerfiles/fpm/7.3
#查看目录下是否有个Docekrfile
ls
#用编辑器修改,Dockerfile添加更多的php扩展
#再用下方的命令build自己的image。
docker build -t myphp .
完成后,记得修改您docker-compose.yml中php服务的image为您的image名称,此处为例叫myphp。最后,重启容器,看看是否work罗。
./console restart
如果您对於D-Laravel有任何的疑问或是重建image的问题,欢迎到以下聊天室评论讨论哦。
D-Laravel聊天室
No Comment
Post your comment