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

前言

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

问题描述

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

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

容器启动之后闪退

容器启动(看似成功)
在这里插入图片描述
实际查看(什么也没有)
在这里插入图片描述

容器名冲突

报错效果如图(原因是之前起过一个这样的实例,虽然原来的容器停止了但是原来的容器并没有清除掉),再次想以该名字命名时会发生冲突,可以使用rm 容器ID删除掉,为什么这么简单的问题也要说一说呢?接着往下看
在这里插入图片描述
一个两个容器使用rm 容器ID还可以 ,同样操作方式清满满的两屏应该有点力不从心吧,如何一键清掉所有不用的镜像请看解决方案中对应的部分
在这里插入图片描述
在这里插入图片描述

解决方案

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

在这里插入图片描述


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷尔。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值