docker start启动容器后闪退或者失败

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: docker start启动容器后闪退或者失败

问题描述



笔者使用docker start 启动mysql容器时,显示启动成功,但是1-2s以后mysql又会自动挂掉,很是奇怪。


以下是问题复现:

Unix socket lock file is empty /var/run/mysqld/mysqld.sock.lock.
Unable to setup unix socket lock file.
Aborting


1.启动并查看容器


docker start 容器id
docker ps -a


7fc68eeac62a42218102335696160427.png


解决过程



1.是否是磁盘已满


因为测试服务器本来磁盘就很有限,所以首先想到的是不是磁盘满了,然后就尝试去清理了磁盘,清理完成后再次进行重启发现容器依然还是异常的。


2.查看日志


docker logs 容器id


d70ec7fd14474f108dc1dabe26ab5b31.png


发现图中所示位置,提示mysqld.sock.lock是空的,这里有一点需要注意,这里报的这个路径“/var/run/mysqld/mysqld.sock.lock”这是容器内的路径,所以如果你在宿主机上搜索肯定不是这个路径

# 搜索上面的文件位置
find / -name mysqld.sock.lock

db7af8aed0474e7a8047e1564a56a8d5.png


根据搜索到的路径去找到这个文件即可。


3.解决问题


解决的方式很简单,就是将这个文件mysqld.sock.lock删除即可,为甚么这个文件会异常呢,删除对其他地方有无影响呢?首先说下导致这个异常的方式多种多样,笔者碰到的是因为服务器非正常down机引起的,非正常宕机的情况下,mysql.sock.lock无法正常删除,所以有了这个问题。那这个文件删除了是否对mysql服务有影响呢,其实也没有,这个文件在mysql重新启动时会重新创建,而且mysql.sock.lock只是mysql.sock的锁文件,mysql.sock文件又有什么作用呢,这个文件主要用于客户端与服务端位于一台机子上的服务器,实现本地连接的也就是我们使用localhost可以直接连本地的服务时用的。所以删了这个文件对我们毫无影响。


总结



这个问题的产生原因其实是服务器非正常宕机引起的,导致了这个文件的异常。这里需要注意的是,若是容器没有数据卷,这个问题将很难处理,所以我们平时启动容器一定要做数据卷,不然容器内部的问题真的无法解决(容器无法启动时)。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
关系型数据库 MySQL Docker
|
28天前
|
Ubuntu Linux Docker
Docker容器的实战讲解
这只是Docker的冰山一角,但是我希望这个简单的例子能帮助你理解Docker的基本概念和使用方法。Docker是一个强大的工具,它可以帮助你更有效地开发、部署和运行应用。
101 27
|
2月前
|
Ubuntu 关系型数据库 MySQL
容器技术实践:在Ubuntu上使用Docker安装MySQL的步骤。
通过以上的操作,你已经步入了Docker和MySQL的世界,享受了容器技术给你带来的便利。这个旅程中你可能会遇到各种挑战,但是只要你沿着我们划定的路线行进,你就一定可以达到目的地。这就是Ubuntu、Docker和MySQL的灵魂所在,它们为你开辟了一条通往新探索的道路,带你亲身感受到了技术的力量。欢迎在Ubuntu的广阔大海中探索,用Docker技术引领你的航行,随时准备感受新技术带来的震撼和乐趣。
125 16
|
2月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
155 30
|
4月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
435 93
|
2月前
|
存储 虚拟化 Docker
|
2月前
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
103 12
|
2月前
|
开发工具 虚拟化 git
自学软硬件第755 docker容器虚拟化技术youtube视频下载工具
docker容器虚拟化技术有什么用?怎么使用?TubeTube 项目使用youtube视频下载工具
|
3月前
|
网络协议 API Docker
Docker+consul容器服务的更新与发现
通过本文的介绍,我们详细探讨了如何结合Docker和Consul来实现容器服务的更新与发现。通过Consul的服务注册和发现功能,可以高效地管理和监控容器化服务,确保系统的高可用性和可扩展性。希望本文能帮助您在实际项目中更好地应用Docker和Consul,提高系统的可靠性和管理效率。
104 23
|
2月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
课时5:阿里云容器服务:最原生的集成Docker和云服务