项目场景及问题描述
Docker在创建镜像写Dockerfile的时候定义了某目录在根目录下,以目录/Xxx为例。由于后面用不到这个目录,在使用容器的时候把该目录删掉了,退出容器后,再次进入该容器进不了,出现报错。
进入容器的指令是:(容器的 CONTAINER ID 前三位是92v)
docker exec -it 92v /bin/bash
报错如下:
OCI runtime exec failed: exec failed: unable to start container process: chdir to cwd ("/Xxx") set in config.json failed: no such file or directory: unknown
原因分析:
通过报错中的 (“/Xxx”) set in config.json 可以看出,出现这种报错大致原因是Docker创建时候定义的文件夹现在没有了。
解决方案:
解决方案非常简单粗暴。可以在容器外定义同名文件夹,用 docker cp
指令将该同名文件夹拷贝入容器内,一开始创建容器时定义的该目录的位置。以一开始容器内定义在根目录下的/Xxx文件夹为例,容器的 CONTAINER ID 前三位是92v,在容器外新建了同名空目录/Xxx,其绝对路径是/home/Sss/Yyy/Xxx/。用一下指令将该空目录拷贝入容器内:
docker cp /home/Sss/Yyy/Xxx/ 92v:/Xxx/
之后再进入容器:
docker exec -it 92v /bin/bash
报错就解决了。成功进入容器,可以正常使用啦~
文章评论