Mac上使用Docker如何快速启动MySQL测试

本文主要讨论使用Docker快速启动 MySQL 测试的方法,包括Mac环境。一起看看吧!

近来业界有很多对Docker的讨论,其生态系统发展得很快,然而,从简单的“入门”或“引导”类的文章中能容易地找到成熟的技术,但Docker不然。我在Mac上试玩过Docker,但Mac绝对是Docker界的二等公民。当我在Giuseppe的博客上看到关于在Mac上使用新Docker beta《Docker for Mac beta and MySQL》一文时,决定自己来尝试下。这些步骤适用于Mac(Windows也可能),亦能适配Linux环境(GA版本,Docker 1.11.1)。

首先,在Mac上注册新的Docker测试版程序,接着从Docker中获得下载代码。此过程我耗时一天,但应该不久就会发布完整版。安装完成后,我需要为常见的MySQL版本设置一些Docker容器,沙箱也就有了。方法如下:

jayj@~ [510]$ docker network create test
90005b3ffa9fef1f817ee4965e794a567404c9a8d5bf07320514e7d848d59ff9
jayj@~ [511]$ docker run --name=mysql57 --net=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql/mysql-server:5.7
6c80fa89610dbd5418ba474ad7d5451cd061f80a8a72ff2e718341827a08144b
jayj@~ [512]$ docker run -it --rm --net=test -e MYSQL_HOST=mysql57 mysql/shell init
Creating a Classic Session to root@mysql57:3306
Enter password:
No default schema selected.
enableXProtocol: Installing plugin mysqlx...
enableXProtocol: done

一些经验总结:

我为我的容器创建了一个名为“测试”的网络以共享,本质是容器之间一个专用的私有网络。我喜欢这个是因为在相关的端口是监听多个容器,也不必设置主机操作系统的端口。
我将Oracle的官方MySQL Docker容器启动一个MySQL 5.7的镜像,在绑定到该测试网络。

我使用了MySQL /shell镜像(来自Oracle)来初始化MySQL 5.7服务器上的mysqlx插件。需要注意的是,我并没有输入密码,因为我没有创建一个服务器(不安全,但它是一个沙箱)。
这个里面的Shell使用了运行后删除的临时容器,所以并不会破坏Docker ps-a输出。

所以,现在我希望能够使用标准的MySQL命令行或新的MySQL shell来访问这个容器。让它看起来很干净,因此我添加了一些bash别名:

alias mysqlsh='docker run -it --rm --net=test mysql/shell'
alias mysql='docker run -it --rm -e MYSQL_ALLOW_EMPTY_PASSWORD=yes --net=test --entrypoint="mysql" mysql/mysql-server:5.7'

这些以后,我可以直接调用他们并通过正常的命令行选项来连接我的MySQL 5.7镜像,就像使用的是一个原生的MySQL CLI binary。从MySQL 5.7镜像中使用MySQL CLI:

jayj@~ [524]$ mysql -h mysql57
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show schemas;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)

使用MySQL shell:

jayj@~ [527]$ mysqlsh -h mysql57 -u root --session-type=node
Creating a Node Session to root@mysql57:33060
Enter password:
No default schema selected.
Welcome to MySQL Shell 1.0.3 Development Preview
Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help', 'h' or '?' for help.
Currently in JavaScript mode. Use sql to switch to SQL mode and execute queries.
mysql-js> sql
Switching to SQL mode... Commands end with ;
mysql-sql> show schemas;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql-sql>

现在,如果为了一些事情想要运行检查MySQL 5.5,可以这样做:

jayj@~ [530]$ docker run --name=mysql55 --net=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql/mysql-server:5.5
Unable to find image 'mysql/mysql-server:5.5' locally
5.5: Pulling from mysql/mysql-server
a3ed95caeb02: Already exists
ffe36b360c6d: Already exists
646f220a8b5d: Pull complete
ed65e4fea7ed: Pull complete
d34b408b18dd: Pull complete
Digest: sha256:12f0b7025d1dc0e7b40fc6c2172106cdf73b8832f2f910ad36d65228d9e4c433
Status: Downloaded newer image for mysql/mysql-server:5.5
6691dd9d42c73f53baf2968bcca92b7f4d26f54bb01d967be475193305affd4f
jayj@~ [531]$ mysql -h mysql55
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.5.49 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> show schemas;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
或者,Percona Server:
jayj@~ [534]$ docker run --name=ps57 --net=test -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d percona/percona-server:5.7
Unable to find image 'percona/percona-server:5.7' locally
5.7: Pulling from percona/percona-server
a3ed95caeb02: Pull complete
a07226856d92: Pull complete
eee62d87a612: Pull complete
4c6755120a98: Pull complete
10eab0da5972: Pull complete
d5159a6502a4: Pull complete
e595a1a01d00: Pull complete
Digest: sha256:d57f0ce736f5403b1714ff8d1d6b91d5a7ee7271f30222c2bc2c5cad4b4e6950
Status: Downloaded newer image for percona/percona-server:5.7
9db503852747bc1603ab59455124663e8cedf708ac6d992cff9b43e2fbebd167
jayj@~ [537]$ mysql -h ps57
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.10-3 Percona Server (GPL), Release 3, Revision 63dafaf
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>

所以,这一切都很好,一旦镜像被本地缓存,上下调整新的容器可以实现无痛和快速。所有这一切的工作都是与我的操作系统工作站分离的。可能还有其他事情可以使用这种设置,但还没找到方法(如加载数据文件、运行代码来连接这些容器等),但将来我会解决。

以上所述是小编给大家介绍的Mac上使用Docker快速启动MySQL测试的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 使用Docker容器搭建MySql主从复制

    1. 编写主MySQL的Docker文件 新建文件夹,命名为MySQL-master-v1.在文件夹mysql-master-v1中新建文件Dockerfile和master.cnf.笔者推荐使用的编辑器是Visual Studio Code.利用编辑器将这两个文件的编码设置成UTF-8.因为本文介绍安装到Linux系统下,所以笔者建议读者把换行符设置成LF,以兼顾Linux操作系统.按照如下内容编写这两个文件. Dockerfile FROM mysql:5.7 # set timezone

  • mac 中docker安装mysql的图文教程

    今天在Docker中安装了MySQL ,是自己打的docker包. 首先新建Dockerfile 内容如下: FROM mysql:latest MAINTAINER abel.yang <527515025@qq.com> LABEL Descripttion="This image is build for MAC to use mysql" Vendor="GitHub" Version="latest" RUN apt-get

  • docker中使用mongodb数据库详解(在局域网访问)

    前言 有了docker,基本上就告别了各种软件.数据库的安装,直接从镜像库pull下来,爽,想想以前那真是一个遭罪啊. 这文章就来看一下如何跑mongo的docker镜像,并且可以在局域网访问,内容相对简单,也是记录我的自学过程. 第一步 获得mongo镜像,命令如下, # 拉取mongo镜像 docker pull mongo # 查看本地库mongo镜像 docker images mongo 第二步 启动mongo镜像,如下 # 启动mongo镜像 docker run -itd -P -

  • 在docker上安装运行mysql实例

    希望在自己的机器模拟一下公司中微服务的构建,使用docker部署了mysql实例,使用spring boot进行了CRUD(增删改查)操作进行了一下验证,在后面的学习中也可以尝试更多的框架和组件. ps:实验环境是:ubuntu 14.04, 64位 1.获取mysql镜像 从docker hub的仓库中拉取mysql镜像 sudo docker pull mysql 查看镜像 sudo docker images mysql latest 18f13d72f7f0 2 weeks ago 38

  • Docker mysql 主从配置详解及实例

    Docker mysql 主从配置 1.首先创建两个文件my-m.cnf(主库配置) .my-s.cnf(从库配置) my-m.cnf 内容如下 # Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU

  • docker中使用mysql数据库详解(在局域网访问)

    前言 开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在CentOS Linux release 7.2.1511 (Core) 上测试完成 假设,你已经安装好docker.如果没有安装好docker可以参考centos7上安装docker 使用 docker pull mysql 获得mysql镜像,接着使用 docker images 查看镜像

  • docker上安装使用mysql镜像

    背景: 现如今不管什么服务和应用基本都可以在docker里跑一跑了,但是在我个人的印象中,像数据库这种比较重要大型且数据容易受伤的应用是不适合在docker里跑的.但是也有很多人尝试在docker中跑mysql等数据库,所以也试着尝试一下.(好吧,重点是领导喜欢~~) 获取镜像: mysql的镜像可以自己用dockerfile制作一个,或者直接到官方的docker镜像库中下载,本文用的是官方镜像. # docker pull mysql # docker images REPOSITORY TA

  • 在Docker中使用MySQL的教程

    提及虚拟化技术,我可是linuxContainer(LXC)的热爱者.但随着Docker技术的声名鹊起,我想在这展示一下如何使用带有Docker的Mysql Docker是什么? 实际上,Docker就是LXC的封装.使用起来很有意思.Docker采用LXC来虚拟化每个应用.所以在接下来的示例中,我们会启动chroot环境中一个被封装在自己命名空间内的mysql实例(你也可以设置Cgroups对应的资源)使用Docker的一个亮点就是统一文件系统(aufs).所以当启动一个Docker容器后,它

  • Mac上使用Docker如何快速启动MySQL测试

    本文主要讨论使用Docker快速启动 MySQL 测试的方法,包括Mac环境.一起看看吧! 近来业界有很多对Docker的讨论,其生态系统发展得很快,然而,从简单的"入门"或"引导"类的文章中能容易地找到成熟的技术,但Docker不然.我在Mac上试玩过Docker,但Mac绝对是Docker界的二等公民.当我在Giuseppe的博客上看到关于在Mac上使用新Docker beta<Docker for Mac beta and MySQL>一文时,决定

  • 如何在Mac上通过docker配置PHP开发环境

    使用docker-compose配置开发环境 一般一个基本的PHP开发环境包括PHP.PHP-FPM.WEB服务器.MySQL数据库,另外还会有Redis或memcache等相关NoSQL服务.我主要是通过docker-compose来配置服务. 什么是docker-compose docker-compose是一个通过YAML文件来定义项目,项目中包含单个或多个容器服务.一般配置文件名为:docker-compose.yml. 目录结构 你可以按自己的喜好组织项目,下面是我用的方法,app 目

  • 如何在mac上用docker对Oracle进行部署使用

    如何在mac上用docker对Oracle进行部署使用 首先安装docker 安装docker可以直接去官网进行下载,但是貌似官网的速度有点慢,这边有条件的推荐复制下载链接在迅雷进行下载(有会员的话会更快哦-) docker官网 dockerMac版下载链接 其他系统需要安装docker请自行去官网选择系统安装 下载完成后的安装需要把Docker的图标拖进application中,安装成功之后会在mac启动台中出现Docker的Logo. 同时安装成功之后在Mac顶端会出现Docker的图标,如

  • Docker + Nodejs + Kafka + Redis + MySQL搭建简单秒杀环境

    秒杀活动可以说在互联网上随处可见,从12306抢票,到聚划算抢购,我们生活的方方面面都可以看到秒杀的身影.秒杀的架构设计也是对于一个架构师架构设计能力的一次考验.本文的目的并不在于提供一个可以直接落地的设计方案,而是意在提供一个简单的方法,一个思路,使大家能够对于秒杀背后的一些设计有更感性的认识, 并且可以自己亲自动手实践一下.所有的配置及源码都在本文最后的GitHub repository中可以找到. 首先,先简单介绍下本文中会涉及到的一些组件,如下图所示: JMeter:用JMeter来模拟

  • MAC上Mysql忘记Root密码或权限错误的快速解决方案

    最近一段时间都在倒腾mantis发现总是连接mysql出错,就随手修改了root权限,导致登录不上了. 下面给大家分享还原root权限和更改root密码的最便捷方法. 1:装mysql workbench .可视化界面直接操作. 2:苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 3:进入终端 输入: cd /usr/local/mysql/bin/ 回车后 登录管理员权限 sudo su 回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe -

  • 详解如何利用docker快速构建MySQL主从复制环境

    在学习MySQL的过程中,常常会测试各种参数的作用.这时候,就需要快速构建出MySQL实例,甚至主从. 考虑如下场景: 譬如我想测试mysqldump在指定--single-transaction参数的情况下,对于myisam表的影响. 本来想在现成的测试环境中进行,但测试环境中,有大量的数据,执行mysqldump进行全备,产生的SQL文件,很难基于表进行搜索. 这个时候,就特别渴望能有一套干净的实例进行测试. 此刻,快速构建能力就显得尤为必要,很多童鞋可能会问,通过脚本不就能实现么?为什么要

  • MySql在Mac上的安装与配置详解

    一.下载安装 官网下载社区版dmg安装文件: https://dev.mysql.com/downloads/mysql/ 1.执行安装文件,按步骤完成安装. 2.安装完成后终端输入: mysql --version; ----显示版本号说明正常,若显示command not found,在终端输入如下,"/usr/local/mysql/bin/mysql"为mysql默认安装路径: $ cd /usr/local/bin/ $ sudo ln -fs /usr/local/mysq

  • 在mac上如何使用终端打开XAMPP自带的MySQL

    直接开始,过程中对每一步可能出现的错误都进行了说明. 1.安装好xampp,然后打开终端,输入: mysql -u root -p 成功进入了,擦,你运气真好,后面不用看了. 2.如果提示command not found,则在终端继续输入执行: ln -s /applications/xampp/bin/mysql /usr/bin 注意:usr别写成来user! 如果成功执行,返回到第1步,就可以进入啦! 3.如果没有成功,返回operation not permitted,说明没有权限,这

  • Docker启动mysql配置实现过程

    目录 实战过程 前言 可以通过官网查询其mysql如何启动 以及对mysql中的一些解读 附上官网地址 启动另一个mysql容器实例并运行mysql命令mysql是世界上最流行的开源数据库. 由于其经过验证的性能,可靠性和易用性,MySQL已经成为基于web的应用程序的领先数据库选择,涵盖了从个人项目和网站,通过电子商务和信息服务,一路到高知名度的web属性,包括Facebook, Twitter, YouTube, Yahoo! 和许多更多. 实战过程 通过查询官网具体白皮书 可得知使用这条命

  • Mac上安装MySQL过程分享

    1.下载MySQL下载地址,选择要下载的版本,建议选择DMG安装包,用着比较方便. 2.解压并安装DMG包中的mysql-5.6.12-osx10.7-x86_64.pkg,然后安装MySQLStartupItem.pkg. #注 MySQL的Mac OS X PKG安装到/usr/local/mysql-VERSION,并且还会安装一个符号连接,/usr/local/mysql,指向新的位置.如果有/usr/local/mysql目录,首先将它改名为/usr/local/mysql.bak.安

随机推荐