首页 > 解决方案 > 从 docker 容器获取命令执行结果

问题描述

无论如何让我知道命令何时在 docker 容器内完成?到目前为止,我已经创建了一个 docker 容器,并且能够通过 docker exec 在我的 bash 脚本中将命令从我的本地发送到 docker 容器中,我正在使用 sleep 等待 docker 容器内的“cd root: npm install”命令完成。如果我没有睡眠,在 npm install 发送到 docker 容器后会立即打印出 done。我如何才能删除睡眠,所以只有在npm installdocker 容器内完成后才会打印出来?

docker exec -d <docker container name> bash -c "cd root;npm install" sleep 100 echo "done"

标签: bashdocker

解决方案


如果要使其在前台(-d标志)运行,请不要将该命令置于后台:

docker exec <docker container name> bash -c "cd root;npm install"
echo "done"

推荐阅读