redirectdocker-exec的输出

docker exec不为我工作。 如果我使用docker exec -it mymachine bash连接到正在运行的容器并运行sh -c 'mysql -u root < /tmp/schema.sql' ,它就可以工作。

如果我只运行docker exec mymachine sh -c 'mysql -u root < /tmp/schema.sql' ,它不会给出任何错误,但是它什么也不做。 如果我运行docker exec mymachine sh -c 'mysql -u root < /tmp/i_dont_exist.sql' ,它也不会给我任何错误。

我该如何解决?

尝试这个 –

 docker exec mymachine "sh -c 'mysql -u root < /tmp/schema.sql'" 

如果没有,那么'<'操作符将被主机中的shell而不是容器拾取。

我怀疑<运营商试图从你的主机而不是你的容器中抓取。 尝试将整个命令括在引号中。