Escenario del proyecto y descripción del problema
Cuando Docker crea una imagen y escribe un Dockerfile, define un determinado directorio bajo el directorio raíz, tomando el directorio /Xxx como ejemplo. Dado que este directorio no se usará más adelante, el directorio se elimina cuando se usa el contenedor. Después de salir del contenedor, no se puede volver a ingresar al contenedor y se produce un error.
La instrucción para ingresar al contenedor es: (los primeros tres dígitos del CONTAINER ID del contenedor son 92v)
docker exec -it 92v /bin/bash
El error es el siguiente:
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
Análisis de causa:
Desde el conjunto ("/Xxx") en config.json en el informe de error, se puede ver que el motivo general de este informe de error es que la carpeta definida cuando se creó Docker ya no está.
solución:
La solución es muy simple y cruda. Puede definir una carpeta con el mismo nombre fuera del contenedor, usar docker cp
el comando para copiar la carpeta con el mismo nombre en el contenedor y la ubicación del directorio definido cuando se creó el contenedor por primera vez. Tome la carpeta /Xxx definida en el directorio raíz del contenedor al principio como ejemplo. Los tres primeros dígitos del ID DEL CONTENEDOR del contenedor son 92v, y se crea un nuevo directorio vacío /Xxx con el mismo nombre fuera del contenedor, y su ruta absoluta es /home/Sss/Yyy/ Xxx/. Copie el directorio vacío en el contenedor con el siguiente comando:
docker cp /home/Sss/Yyy/Xxx/ 92v:/Xxx/
Luego ingrese el contenedor:
docker exec -it 92v /bin/bash
Reportar un error lo solucionará. Ingresó con éxito al contenedor y se puede usar normalmente ~