docker 常见报错
docker常见报错
OCI runtime exec failed: exec failed 容器报错
镜像是使用alpine制作的
docker exec -it 容器名/容器ID bash
//把bash改成 /bin/sh
docker exec -it 容器名/容器ID /bin/sh
Removal In Progress
容器无法删除,状态是Removal In Progress
systemctl stop docker
//获取容器挂载目录,一般是 /var/lib/docker
docker info | grep "Docker Root Dir"
//进入/var/lib/docker/containers,删除以这个容器ID开头的文件夹,然后重启docker
rm -rf ea354b1657baf838e3ab565264b3570d053c410e0f3f5c7fd7ef509444702cf9
systemctl start docker
Device or resource busy
我这里的报错是docker run的时候,脚本对一个-v挂载的文件sed替换报错,这是因为-v挂载的文件,在docker内的程序在未启动前文件是不可写的,但是这个文件是可以拷贝的,因此我拷贝了一份,sed的时候使用拷贝的这份配置文件
EXPORTERCONF="monitordata/application.conf"
EXPORTERCONFTMP="monitordata/application.conf.bak"
//sed替换拷贝后的文件
CHANGEVALUE() {
local filename=$1
local key=$2
local newvalue=$3
if [ $key ];then
cp ${filename} ${filename}.bak
sed -i "s/${key}=.*/${key}=${newvalue}/g" ${EXPORTERCONFTMP}
else
echo "no value" >> /dev/null
fi
}
//获取环境变量中的value
GETVALUEFROMENV() {
local envname=$1
env | grep -w ${envname} | awk -F= '{print $2}'
}
//传入key,value替换配置文件内容
INITCONFIGFILE() {
CHANGEVALUE ${EXPORTERCONF} ISREDIS ${ISREDISTMP}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!