我已经构建了一个用于PHP开发的图像,我很清楚我并没有真正想过如何访问我每天开发所需的工具。例如:composer,PHP的包管理器,每当composer.json更新时我都需要它运行。我认为值得在同一图像中安装这些工具,但后来我无法访问它们。所以,我可以:
我想避免选项2),但是,有没有意义有一个像1)的设置?你们是怎么解决这个问题的?
答案 0 :(得分:1)
除非你有一些非常具体的要求,否则有第三种选择:
使用docker exec命令连接到容器:
docker exec -it CONTAINER-NAME/ID COMMAND [ARG...]
以下是示例:
1:创建您的应用程序:
echo "<?php phpinfo();" > index.php
2:启动容器:
docker run -it --rm --name my-apache-php-app -p 80:80 -v "$PWD":/var/www/html php:5.6-apache
3:打开另一个终端窗口并在运行容器内执行所需的命令:
docker exec -it my-apache-php-app curl -sS https://getcomposer.org/installer | php
docker exec -it my-apache-php-app ls
如果你需要运行容器中的shell - 运行:
docker exec -it my-apache-php-app bash
那就是它!