Docker的新手。尝试从tar恢复mysql数据库。

sudo docker run -it -v web_db_data:/volume -v /tmp:/backup alpine \ sh -c "rm -rf /volume/* /volume/..?* /volume/.[!.]* ; tar -C /volume/ -xjf /backup/web_db_data.tar.bz2"


我得到错误:

docker: Error response from daemon: OCI runtime create failed: container_linux.go:296: starting container process caused "exec: \" sh\": executable file not found in $PATH": unknown.

最佳答案

您正在运行使用\为多行编写的命令,并将其压缩为一行。 \然后转义一个空格,因此您的容器在sh命令中查找前导空格。更改:

sudo docker run -it -v web_db_data:/volume -v /tmp:/backup alpine \ sh -c "rm -rf /volume/* /volume/..?* /volume/.[!.]* ; tar -C /volume/ -xjf /backup/web_db_data.tar.bz2"




sudo docker run -it -v web_db_data:/volume -v /tmp:/backup alpine sh -c "rm -rf /volume/* /volume/..?* /volume/.[!.]* ; tar -C /volume/ -xjf /backup/web_db_data.tar.bz2"


或将其保留为多行:

sudo docker run -it -v web_db_data:/volume -v /tmp:/backup alpine \
  sh -c "rm -rf /volume/* /volume/..?* /volume/.[!.]* ; tar -C /volume/ -xjf /backup/web_db_data.tar.bz2"

关于mysql - Docker恢复失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48141479/

10-16 23:18