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}
}
posted @   liwenchao1995  阅读(297)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示