首先执行 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大版本。

使用Docker在本地启动3个MySQL镜像的更多相关文章

  1. Docker 部署 halo 启动时,MySql 连接不上

    原因 halo 是部署在 docker 容器内部的,而 MySql 是部署在"宿主机"上的,docker默认的网络模式是bridge,容器内127.0.0.1访问不到的,把网络模式 ...

  2. docker学习笔记4:利用docker hub上的mysql镜像创建mysql容器

    docker hub上有官方的mysql镜像,我们可以利用它来创建mysql容器,作为一个服务容器使用. 1.下载mysql镜像 docker pull mysql 2.创建镜像 docker run ...

  3. 详解使用DockerHub官方的mysql镜像生成容器

    详解使用DockerHub官方的mysql镜像生成容器 收藏 yope 发表于 10个月前 阅读 1506 收藏 32 点赞 1 评论 0 腾讯云·云上实验室:开发者零门槛,免费使用真机在线实验!&g ...

  4. 【docker】【mysql】docker安装mysql,阿里云docker镜像加速器,docker搜索查看远程仓库上的镜像,docker拉取镜像,查看本地所有镜像,查看容器的运行状况,查看容器的详细信息

    在docker上安装mysql有两种方式 1.通过Dockerfile构建 2.直接在docker hub上拉取镜像安装 =================本篇采用方法2=============== ...

  5. docker安装启动、配置MySql

    1.安装mysql镜像 docker pull mysql/mysql-server 2.docker中启动Mysql容器 docker run --name mysql01 -d -p 3306:3 ...

  6. MySQL 安装和启动服务,“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”

    MySQL 安装和启动服务,以及遇到的问题 MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5. ...

  7. Window中的Docker 拉取Mysql镜像 并在本地Navicate链接

    首先本地   拉取mysql镜像 以下是所有mysql镜像 我自己下载的为5.6   下面 以5.6为例:(拉取mysql5.6镜像) docker pull mysql:5.6 创建一个容器 doc ...

  8. 本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动

    重新安装MySQL数据库,由于安装的时候马虎,一路next(事实上,某些地方需要严格的配置,我忘记注意了),导致现在出了很多麻烦. 错误信息: 本地计算机上的MySQL服务启动后停止.某些服务在未由其 ...

  9. 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】

    要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...

随机推荐

  1. [TypeScript ] Using the Null Coalescing operator with TypeScript 3.7

    The postshows you how to use the null coalescing operator (??) instead of logical or (||) to set def ...

  2. 洛谷 P1199 三国游戏 题解

    每日一题 day18 打卡 Analysis 贪心 假如小A先选最大的[5,4],虽然电脑必须选一个破坏, 我们可以理解为5和4都属于小A的,假如后面未被破坏的最大值无论是和5相关还是和4相关,必然还 ...

  3. Kubernetes 学习8 Pod控制器

    一.回顾 1.Pod是标准的kubernetes资源,因此其遵循为其资源清单配置定义的基本格式,包含:apiVersion,kind,metadata,spec,status(只读) 2.spec的内 ...

  4. [转载]pythonnet

    python与c#的交互模块pythonnethttp://www.cnblogs.com/tester-zhenghan/p/5406521.html [集成IronPython] 添加CLR对象到 ...

  5. Angular惰性加载的特性模块

    一:Angular-CLI建立应用 cmd命令:ng new lazy-app --routing    (创建一个名叫 lazy-app 的应用,而 --routing 标识生成了一个名叫 app- ...

  6. (2)Angular的开发

    什么是 ReactNative应用, 小程序与RN的关系 native端优化 Js端优化 ReactNative是? 用JavaScript来写App,性能好 异步编程 请点赞!因为你的鼓励是我写作的 ...

  7. AJAX是什么,如何使用AJAX?

    ajax(异步的javascript 和xml) 能够刷新局部网页数据而不是重新加载整个网页. 第一步,创建xmlhttprequest对象,var xmlhttp =new XMLHttpReque ...

  8. nodejs 日志框架winston笔记

    winston是一款nodejs的日志库,本文以2.1.1版本为例,介绍一下使用方法. 1.基础用法 引用日志库,返回的是一个对象.包含一些构造器,实例方法. 其中transports是日志输出方式. ...

  9. 【Python 代码】生成hdf5文件

    import random from PIL import Image import numpy as np import os import h5py from PIL import Image L ...

  10. Spring boot Bean装配

    . Spring boot bean 默认创建的bean 为singleton模式 . @Component 注解 . @Value 为属性初始化 . @Value("${}") ...