Docker中Mysql容器无法停止无法删除如何解决

作者:有用网 阅读量:244 发布时间:2023-10-29
关键字 docker Mysql

这篇文章主要介绍“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中Mysql容器无法停止无法删除如何解决

    查看镜像详情

    docker image inspect IMAGE [IMAGE..]

    Docker中Mysql容器无法停止无法删除如何解决

    查看历史镜像

    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';

    验证外部连接


    #发表评论
    提交评论