我用index.php文件创建了一个docker卷。
现在,每次我运行一个新容器时我想要mount这个文件(我知道该怎么做),但是如果我想将mysqli extension
添加到任何新容器中,
可能吗????
docker run -d -it -p 80:80 test --name=www1 --mount source=myvol1,destination=/var/www/html php:7.2.2-apache ----
docker-php-ext-install mysqli
分析解答
看到这张图片的Dockerfile&它是入口点:
如果在docker run
末尾添加命令来安装扩展,它将作为入口点的CMD
,它将使apache2-foreground
无法启动。
所以,运行时的唯一方法是:
第1步:启动容器
docker run -d -it -p 80:80 --name=www1 --mount source=myvol1,destination=/var/www/html php:7.2.2-apache
第2步:使用exec安装扩展
docker exec -it www1 docker-php-ext-install mysqli
Step3:重启容器:
docker stop www1 && docker start www1
事实上,执行此操作的典型方法是在您自己的dockerfile中自定义它,但它可能不是您想要的:
Dockerfile:
FROM php:7.2.2-apache
RUN xxx // install things as you like here