首先执行 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. am335x system upgrade rootfs for bridge-utils cross compile (十四)

    bridge-utils移植 [目的] 移植bridge-utils的目是在AM335X开发板上使用bridge功能. [环境] 1.  Ubuntu 16.04发行版 2.  MC183平台 3.  ...

  2. Python学习之--列表

    一.列表表示: 用方括号([] )来表示列表,并用逗号来分隔其中的元素,索引从0开始,如下 二.修改元素 三.添加元素: 1. append 2. insert 四. 删除元素: 1. del 2. ...

  3. Bzoj 4147: [AMPPZ2014]Euclidean Nim(博弈)

    4147: [AMPPZ2014]Euclidean Nim Time Limit: 1 Sec Memory Limit: 256 MB Description Euclid和Pythagoras在 ...

  4. 洛谷 P2627 修剪草坪 题解

    P2627 修剪草坪 题目描述 在一年前赢得了小镇的最佳草坪比赛后,Farm John变得很懒,再也没有修剪过草坪.现在,新一轮的最佳草坪比赛又开始了,Farm John希望能够再次夺冠. 然而,Fa ...

  5. IntelliJ IDEA 2017 JDK Tomcat Maven 配置步骤详解(一)

    要求   配置 Java基础环境(实际上应该在虚拟机linux环境下 安装CentOS 7,但是我这电脑实在承受不住了) 安装 开发工具 IntelliJ IDEA 2017.1 第一部分: JDK ...

  6. 洛谷P1052过河

    题目 不看数据范围的话是一个很简单的DP,可是加上数据范围之后就之前的做法就不行了. 所以我们考虑一下路径压缩. 小数据Code #include <iostream> #include ...

  7. TCP的几个知识点

    1. 三次握手.四次挥手 详细查看:https://www.cnblogs.com/amiezhang/p/6703390.html 2. ARQ 协议 ARQ 就是超时重传机制,分为 2 种:停止等 ...

  8. Redis企业实战的几个坑

    一.前言 小伙伴们对Redis应该不陌生,Redis是系统必备的分布式缓存中间件,主要用来解决高并发下分担DB资源的负载,从而提升系统吞吐量. Redis支持多种数据类型,String(字符串).li ...

  9. RNN梯度消失和爆炸的原因 以及 LSTM如何解决梯度消失问题

    RNN梯度消失和爆炸的原因 经典的RNN结构如下图所示: 假设我们的时间序列只有三段,  为给定值,神经元没有激活函数,则RNN最简单的前向传播过程如下: 假设在t=3时刻,损失函数为  . 则对于一 ...

  10. iframe中用到的例子

    <view:qrytr>         <view:qrytd colspan="4">     <iframe id="ccbl&quo ...