• Docker中配置MySQL并实现远程访问


    Docker配置MySQL容器

    拉取MySQL镜像

    docker pull mysql:5.6
    

    有可能会因为网络问题失败,重复尝试。

    创建容器

    docker run -d --name selfdefinename -p 3306:3306 -e MYSQL_ROOT_PASSWORD=rw mysql:5.6
    

    -d 后台运行,--name 设置名称 selfdefinename 是用户自定义的容器名称,-p 设置端口映射,第一个3306是当前主机的端口,第二个3306指容器中的端口;-e 设置root用户密码为rw;最后的mysql:5.6 可以用imageID代替,代表用于创建容器的镜像。

    注:值得注意的是,如果主机已经安装了mysql,那么它会占用3306端口,docker中的mysql将无法正常启动。

    解决方式:

    1.卸载或暂停主机的mysql服务。

    #暂停主机上的mysql
    systemctl stop mysqld
    

    2.创建容器时,修改docker容器的端口映射

    docker run -d --name selfdefinename -p 10086:3306 -e MYSQL_ROOT_PASSWORD=rw mysql:5.6
    

    10086是容器外部端口号,只要不被占用可以任意指定。3306是容器内部端口,mysql在不更改其配置文件时默认只会监听3306端口。

    运行容器

    一般创建好容器后容器会自动运行

    #运行容器
    docker start 容器名或容器ID
    

    允许远程访问

    #首先要进入容器内部
    docker exec -it 容器名或容器ID
    
    #进入mysql
    mysql -u root -p
    
    #授权
    GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "rw";
    flush privileges;
    
    #退出
    exit
    exit
    #第一个exit退出mysql
    #第二个exit退出容器的bash

    Docker常用命令

    新建容器

    docker run -d --name 自定义容器名 镜像ID或镜像名
    

    展示当前运行的容器

    docker ps
    

    展示所有容器

    docker ps -a
    

    展示所有本地镜像

    docker images
    

    运行容器

    docker start 容器名或容器ID
    

    停止运行容器

    docker stop 容器名或容器ID
    

    删除容器

    docker rm -f 容器名或容器ID
    

    进入容器内容bash

    docker exec -it 容器名或容器ID bash
    #退出容器命令:exit
    

    关闭docker服务

    systemctl stop docker
    
  • 相关阅读:
    JavaScript中对事件简单的理解
    正则表达式 RE模块
    模块
    面向对象进阶
    元类详细解释
    四.面向对象和函数补充
    四.函数
    Python的基础知识:
    五层协议及tcp三次握手四次挥手
    nginx常见错误
  • 原文地址:https://www.cnblogs.com/whoyoung/p/10988136.html
Copyright © 2020-2023  润新知