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.
答案 0 :(得分:0)
在容器的$ PATH变量中找不到shell“sh”,你可以尝试在Dockerfile中安装它,或者你可以尝试使用bash,也许它已经安装了
答案 1 :(得分:0)
您正在运行一个为多行\
编写的命令,并将其压缩到一行。然后\
转义一个空格,这样你的容器就会看到带有前导空格的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"