我正在尝试在docker exec中执行两个命令.具体来说,我必须在特定目录中运行命令.我试过这个,但是没有用:
docker exec [id] -c 'cd /var/www/project && composer install'
Run Code Online (Sandbox Code Playgroud)
-c未检测到参数.我也试过这个:
docker exec [id] cd /var/www/project && composer install
Run Code Online (Sandbox Code Playgroud)
但该命令composer install在docker exec命令后执行.我该怎么做?
我正在设置一个脚本来为开发人员本地计算机配置 Docker 环境。该脚本的一个具体部分包括创建一个带有本地卷的临时容器,以设置我将在下一步中使用的数据库。这是脚本中使用的代码:
docker run -d --name mysql_temp -v ~/dev/mysql:/var/lib/mysql/data -e MYSQL_ROOT_PASSWORD=test -p 3306:3306 centos/mysql-57-centos7:latest
脚本中的下一步是这一行:
mysql -u root -h 127.0.0.1 --protocol=tcp --password=test -e "CREATE DATABASE db_test;"
然后,脚本向我返回此错误:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 2
奇怪的是,如果我在第一个命令之后使用命令强制退出exit,然后直接在终端中手动执行第二个命令,它就会工作并为我创建数据库。
知道这是怎么回事吗?
提前致谢,