Php 设置CMD docker容器而不重建

Php 设置CMD docker容器而不重建,php,docker,mysqli,Php,Docker,Mysqli,我们可以更改容器的CMD吗 这就是我跑的地方 $ docker run -it stock_image sh sh@docker # did some changes here $ # exited container $ docker commit [commit-id] new_image 我在Sect new_image查看了docker的CMD变量已经丢失,我知道它可以通过使用Dockerfile的构建过程来解决,但我很好奇我们可以如何设置docker image CMD 之所以要这

我们可以更改容器的CMD吗

这就是我跑的地方

$ docker run -it stock_image sh
sh@docker # did some changes here
$ # exited container
$ docker commit [commit-id] new_image 
我在Sect new_image查看了docker的
CMD变量已经丢失,我知道它可以通过使用Dockerfile的构建过程来解决,但我很好奇我们可以如何设置docker image CMD

之所以要这样做,docker compose.yml无法设置CMD(我不确定,希望它可以),因为我必须使用
docker exec
对容器进行一些更改,然后提交它,而不是重新执行整个过程


另一方面,我将
pdo-pdo_-mysql-mysqli
添加到
php:7.2.5-fpm-alpine3.6
image

实际上,你可以在“docker提交”时使用Dockerfile命令


Docker compose可以设置CMD,它是
命令:
,使用手动
Docker commit构建是一种反模式。你能解释为什么这些更改不能自动完成吗?@johnharris85我在docker compose中尝试CMD,是的,使用
docker commit
构建不是一种方式,但是当你把docker文件搞砸时,你必须从头开始构建整个过程,这需要很多时间,为了快速和节省时间,进入容器并更改内容,这也有助于执行迭代过程。docker将缓存构建层,因此您在Dockerfile中所做的任何更改都只会导致Dockerfile中该更改的层以及任何后续层被重建。因此,如果您的
CMD
是Dockerfile中的最后一个条目,那么更改它并重建几乎是即时的。
docker commit -c "CMD /my/new/app" [commit-id] new_image