Docker無法stop或者rm指定容器問題解決方案
Docker無法stop或者rm指定容器
今日準(zhǔn)備重啟一下docker 容器部署的 Nginx 時(shí),使用的命令是
docker exec -it ir-nginx nginx -s reload
結(jié)果發(fā)現(xiàn)無法重啟報(bào)錯(cuò)
然后想著關(guān)閉再啟動(dòng),結(jié)果發(fā)現(xiàn)
docker restart 、docker stop 、docker kill 、docker exec
都不行
于是用systemctl stop docker再 systemctl start docker
雖然命令可以執(zhí)行成功,但是Nginx那個(gè)容器還是不能關(guān)閉、重啟
執(zhí)行 docker restart
報(bào)錯(cuò)記錄的為
OCI runtime exec failed: exec failed: json: cannot unmarshal number into Go struct field CompatState.init_process_start of type string: unknown
于是想著再復(fù)制一個(gè)yml腳本(弄一個(gè)新的docker),改了一下里面的信息
再執(zhí)行 docker-compose -f /data/compose/nginx-arm64-v2.yml up -d
報(bào)錯(cuò)記錄的為
Error response from daemon: Cannot restart container f8ccd87c9714: Cannot kill container f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c: unknown error after kill: runc did not terminate sucessfully: json: cannot unmarshal number into Go struct field CompatState.init_process_start of type string
里面有個(gè) f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c
的id
(后續(xù):往后就直接執(zhí)行原來的yml,關(guān)鍵是要把這個(gè)特別長(zhǎng)的id拿到)
于是想查找與容器ID相關(guān)的文件或套接字,把它kill掉
lsof | grep "f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c"
結(jié)果查出一大堆數(shù)據(jù),不可能一個(gè)一個(gè)kill吧
于是使用 docker inspect 和 awk 來獲取并殺死容器主進(jìn)程PID
# 獲取容器主進(jìn)程的PID PID=$(docker inspect -f '{{.State.Pid}}' f8ccd87c97147abfdf8d3e11ed20d91f2a719dc249ce4bc37a32923689e0787c) # 殺死該P(yáng)ID(請(qǐng)謹(jǐn)慎使用) kill $PID
該操作可以直接在控制臺(tái)執(zhí)行
在同一個(gè) shell 會(huì)話中連續(xù)執(zhí)行這兩個(gè)命令時(shí),第二個(gè)命令能夠“知道”它的 PID 來自于上一條命令的記錄,因?yàn)榈谝粋€(gè)命令的輸出被
臨時(shí)存儲(chǔ)(關(guān)閉終端窗口或退出 shell 會(huì)話時(shí),變量就會(huì)消失)
在了 PID 變量中,并且這個(gè)變量在后續(xù)的命令中是可以被引用的。
然后發(fā)現(xiàn)通過
docker ps (查看"正在運(yùn)行"的容器) ,看不到那個(gè)容器了
通過 docker ps -a 可以看到,表示已經(jīng)被關(guān)閉了
于是再把這個(gè)容器給刪除了
docker rm -f ir-nginx
最后再執(zhí)行(這個(gè)yml‘腳本是我自己的,你們用你們自己的)
docker-compose -f /data/compose/nginx-arm64.yml up -d
驗(yàn)證了一下重啟命令,發(fā)現(xiàn)沒問題了。
到此這篇關(guān)于Docker無法stop或者rm指定容器的文章就介紹到這了,更多相關(guān)Docker無法stop內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Docker stop停止/remove刪除所有容器
- docker容器無法stop的解決辦法
- Docker容器無法被stop or kill問題的解決方法
- 解決docker啟動(dòng)容器失敗:cannot?access‘/docker-entrypoint-initdb.d/‘:Operation?not?permitted
- pycharm遠(yuǎn)程連接docker容器的操作流程
- pycharm使用docker容器開發(fā)的詳細(xì)教程
- docker swarm如何在指定的node上運(yùn)行指定的容器
- 在Ubuntu 16.04上用Docker Swarm和DigitalOcean創(chuàng)建一個(gè)Docker容器集群的方法
相關(guān)文章
docker部署nginx并且實(shí)現(xiàn)https的方法步驟
啟用HTTPS可以提高網(wǎng)站的安全性、可信度,同時(shí)符合法規(guī)要求,本文主要介紹了docker部署nginx并且實(shí)現(xiàn)https的方法步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07Docker Gitlab+Jenkins+Harbor構(gòu)建持久化平臺(tái)操作
這篇文章主要介紹了Docker Gitlab+Jenkins+Harbor構(gòu)建持久化平臺(tái)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11docker運(yùn)行nginx容器并掛載數(shù)據(jù)卷
本文主要介紹了docker運(yùn)行nginx容器,并通過掛載目錄將容器與宿主機(jī)的數(shù)據(jù)進(jìn)行共享和統(tǒng)一管理,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟
本文主要介紹了docker nginx ssl設(shè)置的實(shí)現(xiàn)步驟,使用docker運(yùn)行nginx,配置代理,和ssl設(shè)置,進(jìn)行https訪問,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Docker中鏡像構(gòu)建文件Dockerfile與相關(guān)命令的詳細(xì)介紹
這篇文章主要介紹了Docker中鏡像構(gòu)建文件Dockerfile與相關(guān)命令的相關(guān)資料,文中介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來一起看看吧。2017-02-02