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/