【Docker 基础教程】Mysql主从服务搭建------Mysql容器闪退及容器名冲突系列问题

简介: 【Docker 基础教程】Mysql主从服务搭建------Mysql容器闪退及容器名冲突系列问题

前言


分享一下Docker安装Mysql镜像后容器实例无法正常启动的解决方案,大家可以先看问题描述,如果一样的话再看解决方案,如果不一样的话解决方案对你也没有什么意义。


问题描述


5.7以上版本不知道root用户密码


Mysql5.7版本以上,刚刚安装mysql的时候系统会给root用户生成一个随机密码,不知道的话登不进去系统。可以通过查看配置文件查看到初始密码,并设置一下将其改为自己想要的。


容器启动之后闪退


容器启动(看似成功)


8b777604cf0748a5a18eae9650db3fc0.png

实际查看(什么也没有)


f5dcf08f40a7456b9310912056901b99.png


容器名冲突


报错效果如图(原因是之前起过一个这样的实例,虽然原来的容器停止了但是原来的容器并没有清除掉),再次想以该名字命名时会发生冲突,可以使用rm 容器ID删除掉,为什么这么简单的问题也要说一说呢?接着往下看


71ce1c38418f432fab641e66fa9b8780.png


一个两个容器使用rm 容器ID还可以 ,同样操作方式清满满的两屏应该有点力不从心吧,如何一键清掉所有不用的镜像请看解决方案中对应的部分


1b1df3fc6d144742a4654b2977807ebf.png

cc131a134b5a4cc68227207d8cf6394c.png


解决方案


5.7以上版本不知道root用户密码


查看原始密码

grep "password" /var/log/mysqld.log


mysql -uroot -p
输入密码(最好直接粘贴,不要带多余的空格)


修改密码


# 由于mysql对用户密码安全系数要求较高这两个是为了降低用户密码安全等级(练习的时候可以用,工业生产中千万别用)
set global validate_password_policy=0;
set global validate_password_length=1;
# 将root用户密码修改为root
set password for root@localhost = password ('root')

容器启动之后闪退


原因:

我的虚拟机系统是centos7.5的版本,Centos7的安全Selinux禁止了一些安全权限

导致挂载信息时出现权限不足,网上查询资料之后给出了如下3种

解决方案:

1.在docker run中加入 --privileged=true 给容器加上特定权限(强烈推荐)

2.关闭selinux

3.在selinux添加规则,修改挂载目录的特定权限


容器名冲突


docker rm $(docker ps -a -q)该指令可以直接清除所有不在运行的容器

另外拓展一下其他的指令


杀死所有正在运行的容器


docker kill $(docker ps -a -q)


删除所有已经停止的容器


docker rm $(docker ps -a -q)



删除所有未打 dangling 标签的镜像


docker rmi $(docker images -q -f dangling=true)


删除所有镜像


docker rmi $(docker images -q)


强制删除镜像名称中包含“doss-api”的镜像


docker rmi --force $(docker images | grep doss-api | awk '{print $3}')


删除所有未使用数据


docker system prune


只删除未使用的volumes


docker volume prune
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
740 6
|
6月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
919 5
|
8月前
|
关系型数据库 MySQL 数据库
为什么 MySQL 不推荐用 Docker 部署?
本文探讨了MySQL是否适合容器化的问题,分析了Docker容器在数据安全、性能瓶颈、状态管理及资源隔离等方面的挑战,并指出目前主流分布式数据库如TDSQL和OceanBase仍倾向于部署在物理机或KVM上。
415 0
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
520 28
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
1224 12
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1163 108
|
9月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
678 57
下一篇
开通oss服务