2022
我们一起努力

怎样修复docker容器(docker 重装)

怎样修复docker容器?比如把容器内的php-fpm配置文件中的daemon改为yes,导致了没有前台进程,因此,容器启动后就停止了。那么如何修改没有启动的容器内的文件呢?

创建新镜像

把这个问题容器用docker commit提交到一个新的镜像,然后用docker run -it 基于新镜像运行一个新的容器进去改变(修复)配置文件。再通过新的容器再提交一个新的镜像,然后在基于新的镜像重新启动容器(同最初的容器)。

这个方法是可行的,但问题是步骤多,而且提交了新的镜像,对于后续维护增加了复杂性。

#把要修复的容器提交为镜像
docker commit container_id image_name : tag
docker rm container_id #这个删除老的容器,反正也用不了
#查看刚建立的新镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
zhibin/php5 2022 c6532c5ece91 10 minutes ago 1.549 GB
#利用这个新镜像创建容器,进入容器,修复配置文件
docker run -it --name tmp-fixphp5 zhibin/php5:2022 /bin/bash
#重新提交镜像
docker commit container_id image_name : tag
#创建修复后的容器
docker run -d --volumes-from nginx_server --name php-fpm_server_2022 --dns=10.100.17.21 --cap-add SYS_PTRACE -p 9000:9000 zhibin/php5:202202

或者使用Docker过程中,运行docker-compose up或docker run时,出现Conflict. The name W is already in use by container XYZ. You have to delete..或”Conflict, cannot remove the default name of the container…”

我们无法启动容器,因为该名称已在使用中。运行docker ps命令,又看不到。

运行docker ps -a

找到你的容器,复制它的Id号,然后运行

docker rm 85c2981e63f6 26ea04f41ab3

删除后,再运行docker-compose up

第二种方法是从/ var下手动删除剩余的文件。具体来说,可以在/ var / lib / docker / containers /下找到这些文件。每个容器目录都有一个超长的哈希标识符,里面有大量丑陋的JSON输出。如果搜索与所需容器名称匹配的特定字符串,则会找到包含其配置文件的相关目录。

删除与名称搜索匹配的父目录,然后重新启动Docker服务。之后,应该可以再次使用你的名字。

本公司的容器云是通过docker技术,在集群服务器上部署容器服务实现,拥有上万Linux镜像,功能强大、简单易用,可轻松作集群服务,自由组网、轻量灵活。

高性价比的容器云产品链接 cmy.cn/host/

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们56dr_com,同时欢迎投稿传递力量。

本文从“特网科技(56dr.com)”转载,原作者保留一切权利,若侵权请联系删除。

赞(0)
文章名称:《怎样修复docker容器(docker 重装)》
文章链接:https://www.fzvps.com/150343.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!