我有一个集装箱无法启动。
Error response from daemon: failed to create shim task: OCI runtime create failed:
runc create failed: unable to start container process:
exec: "/scripts/run_task.sh": permission denied: unknown
如果我检查集装箱我能看到
[
{
"Id": "6ea7961f70fac969d6e91bde125ff64f79f856171e17827a9a6ded19fe6629a2",
"Created": "2023-03-30T07:12:37.342296803Z",
"Path": "/scripts/run_task.sh",
"Args": [],
"State": {
"Status": "created",
"Running": false,
"ExitCode": 126,
"Error": "failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: \"/scripts/run_task.sh\": permission denied: unknown",
...
},
...
"Config": {
... ,
"Env": [
"APP_ENV=local_task",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin",
"LANG=ja_JP.utf8"
],
"Cmd": null,
"Entrypoint": [
"/scripts/run_task.sh"
],
"OnBuild": null,
}
}
]
也许这只是由于'/scripts/run_task.sh
'的错误文件模式造成的,但是容器没有运行,我不能做类似'docker exec -it xxx bash
'的事情,我们有没有一些方法来检查/修复失败启动的docker容器中的一些文件?
谢谢。
1条答案
按热度按时间kd3sttzy1#
如果启动时映像无法运行,那么正确的做法是找出问题所在并构建一个可以运行的新映像。
尝试让当前映像运行而不修改它最多是一种变通方法,并且每次要运行映像时都必须这样做会很烦人。
为了帮助您诊断问题,您可以在运行映像时覆盖入口点。然后您可以在容器中启动shell并查看
run_task.sh
文件的权限。要做到这一点,您可以像这样运行图像
这应该会将您置于容器内的shell中,您可以探索文件系统。