在Docker中使用MySQL的教程_Mysql

提及虚拟化技术,我可是linuxContainer(LXC)的热爱者。但随着Docker技术的声名鹊起,我想在这展示一下如何使用带有Docker的Mysql

Docker是什么?

实际上,Docker就是LXC的封装。使用起来很有意思。Docker采用LXC来虚拟化每个应用。所以在接下来的示例中,我们会启动chroot环境中一个被封装在自己命名空间内的mysql实例(你也可以设置Cgroups对应的资源)使用Docker的一个亮点就是统一文件系统(aufs)。所以当启动一个Docker容器后,它会记录其aufs总数并只会更新新写入的数据。

Aufs对于大多数应用来说十分有用,并且也能很好地支持数据库测试。在这我只想做个简单的示例-仅仅抛砖引玉,实用性也许并不高- Dockerfile. Dockerfile是Docker镜像的构建脚本

咱们来看看Dockerfile的内容:
 

FROM ubuntu
MAINTAINER erkan yanar <erkan.yanar@linsenraum.de>

ENV DEBIAN_FRONTEND noninteractive
RUN apt-get install -y python-software-properties
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
RUN add-apt-repository 'deb http://mirror2.hs-esslingen.de/mariadb/repo/10.0/ubuntu precise main'
RUN apt-get update
RUN apt-get install -y mariadb-server
RUN echo "[mysqld]"      >/etc/mysql/conf.d/docker.cnf
RUN echo "bind-address = 0.0.0.0"  >>/etc/mysql/conf.d/docker.cnf
RUN echo "innodb_flush_method = O_DSYNC" >>/etc/mysql/conf.d/docker.cnf
RUN echo "skip-name-resolve"    >>/etc/mysql/conf.d/docker.cnf
RUN echo "init_file = /etc/mysql/init" >>/etc/mysql/conf.d/docker.cnf
RUN echo "GRANT ALL ON *.* TO supa@'%' IDENTIFIED BY 'supa';" >/etc/mysql/init

EXPOSE 3306
USER mysql
ENTRYPOINT mysqld

你可以按自己的需求更改。明白了大意后,可以进一步优化代码。比如,较少运行步骤:)

运行一下看看 (命名为mysql)
 

> cat $DOCKERFILENAME | docker build -t mysql -

很好!启动51个容器看看:
 

> time for i in $(seq 10 60 ) ; do docker run -d -p 50$i:3306 mysql ; done
..
real 0m27.446s
user 0m0.264s
sys  0m0.211s

这都是在我笔记本上的结果. 如果使用KVM性能会更好 :)
 

> docker ps | grep mysqld |wc -l
51
> docker ps | head -2
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS     NAMES
6d3a5181cd56  mysql:latest  /bin/sh -c mysqld About a minute ago Up About a minute 0.0.0.0:5060->3306/tcp lonely_pare

快来试试吧 \o/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mysql
docker mysql 使用、docker 使用mysql镜像、docker mysql如何使用、docker使用教程、docker mac 使用教程,以便于您获取更多的相关知识。

时间: 2024-11-09 01:00:15

在Docker中使用MySQL的教程_Mysql的相关文章

在Lua程序中使用MySQL的教程

  这篇文章主要介绍了在Lua程序中使用MySQL的教程,是Lua入门学习中的基础知识,需要的朋友可以参考下 导入MySQL 我们可以用一个简单语句导入SQLite库,假设Lua中正确实现并已完成.在安装过程中,文件夹libsql包含数据库相关的文件. 代码如下: mysql = require "luasql.mysql" 可变的MySQL将提供通过参照主MySQL表访问该功能. 建立连接 我们可以设立一个启动MySQL的环境,然后创建环境的连接.如下所示. 代码如下: local

在MySQL中使用STRAIGHT_JOIN的教程_Mysql

问题    通过「SHOW FULL PROCESSLIST」语句很容易就能查到问题SQL,如下: SELECT post.* FROM post INNER JOIN post_tag ON post.id = post_tag.post_id WHERE post.status = 1 AND post_tag.tag_id = 123 ORDER BY post.created DESC LIMIT 100    说明:因为post和tag是多对多的关系,所以存在一个关联表post_tag

安装使用Percona XtraBackup来备份恢复MySQL的教程_Mysql

1.安装XtraBackup yum的安装方法: 自动 $ rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm 然后会看到: Retrieving http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm Preparing... ################

21分钟 MySQL 入门教程_Mysql

21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据类型 五.使用MySQL数据库 登录到MySQL 创建一个数据库 选择所要操作的数据库 创建数据库表 六.操作MySQL数据库 向表中插入数据 查询表中的数据 更新表中的数据 删除表中的数据 七.创建后的修改 添加列 修改列 删除列 重命名表 删除整张表 删除整个数据库 八.附录 修改 root

详解在MySQL中创建表的教程_Mysql

创建表的命令要求:     表的名称     表字段名称     每个字段的定义 语法: 下面是通用的SQL语法来创建一个MySQL表: CREATE TABLE table_name (column_name column_type); 现在,我们将创建下面的教程数据库表中. tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author

在阿里云的CentOS环境中安装配置MySQL的教程_Mysql

1 常规错误的yum安装方法: 在前文中记述了CentOS 6.5系统中通过yum方式快速地搭建了LNMP环境,那么是否也能在CentOS 7或CentOS 7.1系统中依葫芦画瓢安装MySql5.6.24呢?答案是否定的. [root@typecodes ~]# yum -y install mysql mysql-server mysql-devel ...................... ....省略部分安装过程.... ...................... Installe

在 Docker 中运行 MySQL:多主机网络下 Docker Swarm 模式的容器管理

本文将以多主机网络环境为基础,探讨如何利用内置编排工具 Docker Swarm 模式对各主机上的容器加以管理. Docker Engine – Swarm 模式 在多台主机之上运行 MySQL 容器拥有一定程度的复杂性,而具体水平则取决于您所选择的集群技术. 在尝试利用容器加多主机网络运行 MySQL 之前,我们首先需要理解镜像的起效原理.各资源的分配方式(包括磁盘.内存与 CPU).网络(覆盖网络驱动因素,默认情况下包括 flannel 与 weave 等)以及容错机制(容器如何实现重新定位

在VB.NET应用中使用MySQL的方法_Mysql

 绪言 在Visual Studio中使用向导连接到MySQL数据库是一件相当棘手的事情.因为MySQL并不在VS2012默认支持的数据库中(比如SQL Server).在本文中我将介绍如何使用VB.NET连接到MySQL数据库并且执行SQL语句(SELECT,UPDATE,DELETE),同时我会展示如何将MySQL连接器导入(connectors)到Visual Studio 2012中. 使用代码     你须要从http://dev.mysql.com/downloads/connect

数据库管理中文件的使用教程_Mysql

从文本文件中读取数据(import) 常用的文本文件:CSV(Comma Separated Values)文件,即:以逗号分隔的数值 形式如下: [plain] M0001,李刚,1976-01-05,1 M0002,王二,1955-01-15,1 M0003,李四,1967-03-05,1 [sql] LOAD DATA INFILE 'D:/myCodes/test.cvs' INTO TABLE member FIELDS TERMINATED BY ','; -- 注意 test.cv