这篇文章主要介绍“Docker中Mysql容器无法停止无法删除如何解决”,在日常操作中,相信很多人在Docker中Mysql容器无法停止无法删除如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker中Mysql容器无法停止无法删除如何解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Mysql容器无法停止无法删除问题
问题
mysql容器如法停止,无法删除,也无法连接。docker stop,docker kill等命令都无效。
处理办法:
1.停止所有的容器
docker stop 容器Id
2.强制移除此容器
docker rm -f 容器id
3.清理此容器的网络占用
格式:docker network disconnect --force 网络模式 容器名称
示例:docker network disconnect --force bridge 容器名
4.简查是否还有同名容器占用
格式:docker network inspect 网络模式
示例:docker network inspect bridge
5.重新构建容器
示例1
docker run --name mysql --restart=always
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf
-v /home/mysql/data:/var/lib/mysql
-p 3317:3306
-e MYSQL_ROOT_PASSWORD="root"
-e TZ=Asia/Shanghai
示例2
docker run --name mysql
-v /data/mysql-data:/var/lib/mysql
-p 33306:3306
-e MYSQL_ROOT_PASSWORD=guest-root
mysql:latest
启动报错:
Different lower_case_table_names settings for server ('0') and data dictiona
原因
mysql8.x版本修改区分的大小写的配置
解决方法
1、在my.cnf配置文件[mysqld]下添加
[mysqld]
lower_case_table_names=1
2、docker启动mysql修改配置 添加 --lower-case-table-names=1 :
docker run --name mysql --restart=always
-v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf
-v /home/mysql/data:/var/lib/mysql
-p 3317:3306
-e MYSQL_ROOT_PASSWORD="root"
-e TZ=Asia/Shanghai
-d mysql:8.0 --lower-case-table-names=1
Docker中Mysql的使用
拉取MySQL镜像
# docker pull mysql:8.0.4
docker pull mysql:5.7.5
创建可挂载磁盘目录
mkdir -p /docker/mysql
chmod -R 777 /docker/mysql
运行MySQL容器
docker run --name mysql
-p 3306:3306
-v /docker/mysql/data:/var/lib/mysql
-v /docker/mysql/log:/var/log/mysql
-v /docker/mysql/conf.d:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.7.5
查看docker容器的运行状态:
docker ps # 查看运行中的容器
docker ps -a # 查看所有容器的状态
停止容器
docker stop CONTAINER ID
运行已经停止的容器
docker start CONTAINER ID
删除容器
docker rm CONTAINER ID
强制删除运行中的容器
docker rm CONTAINER ID -f
删除所有已停止的容器(display all container ID)
docker rm $(docker ps -a -q)
查看镜像详情
docker image inspect IMAGE [IMAGE..]
查看历史镜像
docker image history 【OPTIONS】IMAGE
docker history 【OPTIONS】IMAGE
修改镜像名称和标签
docker tag source_IMAGE【:TAG】 TARGET_IMAGE【:TAG】
进入MySQL容器
docker exec -it mysql /bin/bash
使用MySQL命令行工具连接MySQL
mysql -h localhost -u root -p
输入密码
修改root账户的认证模式
Alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
验证外部连接