上海市城市建设工程学校网站,做网站域名是什么意思,免费的网站或软件,西宁市建设网站企业工作中使用docker-compose部署容器#xff0c;有时候会出现使用docker-compose stop或docker-compose down命令想停掉容器#xff0c;但是依然无法停止或者一直卡顿在停止中的阶段#xff0c;这种问题很让人头疼啊#xff01; 目录 问题描述问题排查问题解决终极杀招-最粗暴… 工作中使用docker-compose部署容器有时候会出现使用docker-compose stop或docker-compose down命令想停掉容器但是依然无法停止或者一直卡顿在停止中的阶段这种问题很让人头疼啊 目录 问题描述问题排查问题解决终极杀招-最粗暴的解决方法手动清理假死的docker服务 书籍推荐书籍名称《Kubernetes 从入门到DevOps企业应用实战》内容介绍适合人群如何领书自主购买 最后 问题描述
在使用docker部署服务时偶尔会遇到docker服务假死的情况使用的命令如下
docker ps 显示容器状态正常但是对外服务已经不可用不可访问docker stats 没有任何反应docker stop CONTAINER_ID 也没有任何反应docker restart CONTAINER_ID 也没有任何反应docker exec -it --user root CONTAINER_ID /bin/bash 也没有任何反应docker logs CONTAINER_ID --tail 111 -f 也没有任何反应docker-compose stop/down 命令也提示响应超时不可用 问题排查
之前没有遇到过这种问题也是第一次于是就各种信息都看一下各种可能性也都考虑到位 猜测这种情况可能是由于容器内部的问题导致服务无法正常运行或者Docker守护进程本身出现了问题。 查看容器内部日志我的容器日志也没有问题
使用以下命令查看容器内的stdout和stderr输出以获取有关容器内部问题的更多信息。
docker logs CONTAINER_ID使用-f选项可以实时跟踪日志
docker logs -f CONTAINER_ID检查宿主机资源 使用以下命令检查宿主机的资源使用情况确保资源CPU、内存没有被耗尽我的没有问题
docker stats查看Docker守护进程状态我的容器依然处于运行状态
检查Docker守护进程的运行状态确保它没有出现问题。
sudo systemctl status docker如果守护进程出现问题可以尝试重启Docker服务
sudo systemctl restart docker手动停止和启动容器 尝试手动停止和启动容器看是否能够解决问题。我的问题么有解决啊
docker stop CONTAINER_ID
docker start CONTAINER_ID检查端口冲突 确保容器所使用的端口没有被其他进程占用。不可能绝对不可能.jpg查看系统日志 查看系统日志以获取更多关于系统或Docker的问题的信息。(说实话么有看出来什么问题)
dmesg | grep -i docker查看网络配置正常的网络状况网络配置也没有修改
检查Docker网络配置确保网络正常。
docker network ls查看容器的网络配置
docker inspect CONTAINER_ID | grep NetworkMode查看防火墙设置 如果使用防火墙确保容器所需的端口没有被阻塞。 尝试重启Docker服务 如果以上方法都没有解决问题可以尝试重启整个Docker服务。终极大招管用
sudo systemctl restart docker问题解决
终极杀招-最粗暴的解决方法 重启docker慎用
sudo systemctl restart docker要注意这个操作会把所有的docker服务无差别的重启慎用
手动清理假死的docker服务
找到假死的docker服务执行docker ps命令找到容器ID【CONTAINER_ID】先尝试使用docker自带的命令停止容器docker stop 【CONTAINER_ID】 发现停不掉手动查找docker目录下的容器信息
docker默认目录/var/lib/docker所有docker容器的信息都挂载在/var/lib/docker/containers目录下通过【CONTAINER_ID】找到该假死服务的目录 ll /var/lib/docker/containers | grep 【CONTAINER_ID】cd /var/lib/docker/containers
删除该容器 rm -rf 目录名 这里删除可能会报下面的错误因为你的容器还挂载了其他目录信息如下 rm:无法删除/var/lib/docker/containers/目录名/secrets:设备或资源忙无法删除/var/lib/docker/containers/目录名/shm: 设备或资源忙 这个时候查一下容器对应的挂载目录
cat /proc/mounts |grep docker |grep 【CONTAINER_ID】然后先取消挂载
umount /data/sys/var/docker/containers/挂载目录/secretsumount /data/sys/var/docker/containers/挂载目录/shm如果这一步 unmout 不了可以尝试找到使用该目录的进程
lsof |grep 挂载目录如果有相关进程记录相关的进程号直接 kill -9 进程号
ll /var/lib/docker/containers | grep 【CONTAINER_ID】这个时候再重新执行删除目录命令
cd /var/lib/docker/containersrm -rf 目录名这个时候就可以删掉了
再次尝试通过docker的命令停止容器
docker stop 【CONTAINER_ID】或
docker rm -f 【CONTAINER_ID】或docker kill --signalSIGINT 【CONTAINER_ID】如果还是无法停掉改服务可以按如下步骤
使用linux进程管理命令来结束容器进程 先找到该进程ps -ef | grep【CONTAINER_ID】 强制杀掉筛选出来的进程信息kill -9 PID
再次检查docker服务状态 docker ps
先可以看到该服务已经被干掉了。 如果说按照这个操作依然无法解决docker假死问题那么我还是建议大家采用上面最粗暴的方式去解决但是要注意这个操作会把所有的docker服务无差别的重启。 书籍推荐 源自近200万学员热捧的Kubernetes实战课程作者研究和实践容器技术超过10年历时三年精心打造涵盖大量一线大厂实战项目理论基础命令详解众多应用场景企业级案例自动化DevOps运维知识体系 书籍名称《Kubernetes 从入门到DevOps企业应用实战》 内容介绍 本书作者从事容器技术方面的研究和实践已近十年还是一位Kubernetes讲师和社区贡献者其录制的Kubernetes视频课入选了工信部人才交流中心官方认证课程本书是在总结多年来不断改进的视频课的基础上精心编撰而成内容经过学员检验值得依赖。 本书除介绍Kubernetes本身还介绍了很多周边相关技术比如Jekins、CI\CD、Istio、Prommethues、Ingress、K3s等有助于读者整合运用这些技术真正解决生产实践中遇到的问题。 总之这是一本理解兼备实践注重实操的Kubernetes好书期待读者从本书中收获多多。
适合人群
本书由浅入深有趣有料适合想提升代码编写水平的大学生、求职者、编程爱好者阅读也适合有12年开发经验的程序员参考还可以作为各类培训班的培训教材。
如何领书
———————————————— 本次本篇文章送书 2-3本 评论区抽2-3位小伙伴送书 活动时间截止到 2023-12-09 20:00:00 抽奖方式利用网络公开的在线抽奖工具进行抽奖 参与方式关注、点赞、收藏评论 “人生苦短K8S超简单” 根据文章阅读量的多少来安排送书的本数。 ———————————————— 注活动结束后会私信中奖粉丝的各位注意查看私信哦
自主购买
小伙伴也可以访问链接进行自主购买哦~ 直达京东购买链接《Kubernetes 从入门到DevOps企业应用实战》 最后 好看的灵魂千篇一律有趣的鲲志一百六七如果觉得文章还不错的话可以点赞收藏关注 支持一下鲲志的主页 还有很多有趣的文章欢迎小伙伴们前去点评如果有什么需要改进的地方还请大佬指出❌