zoukankan      html  css  js  c++  java
  • 使用Docker在本地启动3个MySQL镜像

    首先执行 sudo docker pull mysql 命令下载mysql官方镜像:

    zifeiy@zifeiy-PC:~$ sudo docker pull mysql
    Using default tag: latest
    latest: Pulling from library/mysql
    5e6ec7f28fb7: Pull complete 
    4140e62498e1: Pull complete 
    e7bc612618a0: Pull complete 
    1af808cf1124: Pull complete 
    ff72a74ebb66: Pull complete 
    3a28cb03e3dc: Pull complete 
    2b52dda3bd7d: Pull complete 
    dc89e81122ad: Pull complete 
    ecba98b7a588: Pull complete 
    109b011a27be: Pull complete 
    5f380f98ab52: Pull complete 
    cdda841f5c5c: Pull complete 
    Digest: sha256:048c2c616866c47c8a9fb604548d32ce842be292b56fba3d90fc07e0e143dac4
    Status: Downloaded newer image for mysql:latest
    

    然后使用 netstat -anp | grep 3306 命令是否被占用了,结果如下:

    zifeiy@zifeiy-PC:~$ sudo netstat -anp | grep 3306
    tcp6       0      0 :::3306                 :::*                    LISTEN      1044/mysqld         
    tcp6       0      0 :::33060                :::*                    LISTEN      1044/mysqld     
    

    可以看到,3306端口已经被mysqld这个进程占用了,原因是我之前已经在我的电脑上启动了mysqld服务。

    所以我们接下来启动的3台mysql的Docker镜像,在确定没有端口占用的情况下,我们将他们的3306端口分别映射到宿主机的3307、3308、3309端口。
    使用如下命令创建3个mysql的docker容器:

    sudo docker run --name mysql-node3307 -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 -d mysql
    sudo docker run --name mysql-node3308 -e MYSQL_ROOT_PASSWORD=123456 -p 3308:3306 -d mysql
    sudo docker run --name mysql-node3309 -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -d mysql
    

    使用 sudo docker ps 命令可以查看当前活跃的docker容器:

    zifeiy@zifeiy-PC:~$ sudo docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
    934bd2e04221        mysql               "docker-entrypoint.s…"   9 seconds ago       Up 7 seconds        33060/tcp, 0.0.0.0:3309->3306/tcp   mysql-node3309
    0134cdc3c255        mysql               "docker-entrypoint.s…"   18 seconds ago      Up 16 seconds       33060/tcp, 0.0.0.0:3308->3306/tcp   mysql-node3308
    725fc710270e        mysql               "docker-entrypoint.s…"   29 seconds ago      Up 28 seconds       33060/tcp, 0.0.0.0:3307->3306/tcp   mysql-node3307
    

    可以看到,三台mysql容器已经启动起来了。

    然后我们通过本地的mysql命令连接着三台mysql服务器:

    mysql -uroot -p123456 -h127.0.0.1 -P3307
    mysql -uroot -p123456 -h127.0.0.1 -P3308
    mysql -uroot -p123456 -h127.0.0.1 -P3309
    

    我们使用上面命令的一个连接到其中一台服务器,然后在mysql命令行执行 show variables like 'version' 查看mysql的版本:

    mysql> show variables like 'version';
    +---------------+--------+
    | Variable_name | Value  |
    +---------------+--------+
    | version       | 8.0.14 |
    +---------------+--------+
    1 row in set (0.00 sec)
    

    可以看到,是最新版的8.0.14,如果需要其他版本,可以在 docker pull 的时候指定mysql大版本。

  • 相关阅读:
    Objective-C 生成器模式 -- 简单实用和说明
    Objective-C 桥接模式 -- 简单实用和说明
    Objective-C 工厂模式(下) -- 抽象工厂模式
    Objective-C 工厂模式(上) -- 简单工厂模式
    Linux篇---Vi的使用
    【Spark篇】---SparkSQL中自定义UDF和UDAF,开窗函数的应用
    【Spark篇】---SparkStreaming算子操作transform和updateStateByKey
    【Spark篇】---SparkStream初始与应用
    【Spark篇】---SparkSQL on Hive的配置和使用
    【Spark篇】---Spark中Shuffle机制,SparkShuffle和SortShuffle
  • 原文地址:https://www.cnblogs.com/zifeiy/p/10349874.html
Copyright © 2011-2022 走看看