Fix docker exec
operation not permitted
Issue
服务器执行 docker exec
失败
Text Only | |
---|---|
搜索一下发现 Issue:
https://github.com/moby/moby/issues/43969
Issue 中提到这个问题在 runc v1.1.4
中已经修复.
检查一下 runc
版本, 为 1.1.3
, ok, 确认为 runc
的问题.
想着要升级 docker 版本会造成服务停止问题, 就没处理.
直到今天 [2023-11-30 Thu] 又想起这个问题, 搜了一下, 发现阿里云的文章提到可以避免业务中断的方法^aliyun, 尝试了一下, 没有问题.
Solution
这样就替换完成了, 对于有问题的容器直接重启就可以了.
About runc
runc 是最底层的容器运行时.
以最新版的 Docker
为例, 当我们执行运行容器时, Docker
会调用 containerd,
containerd
再调用 runc
, 最后通过 runc
来运行容器.
而 containerd
主要负责以下事情^qikqiak:
- 管理容器的生命周期(从创建容器到销毁容器)
- 拉取/推送容器镜像
- 存储管理(管理镜像及容器数据的存储)
- 调用 runc 运行容器(与 runc 等容器运行时交互)
- 管理容器网络接口及网络
架构: