• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 在Docker中使用MySQL的教程

在Docker中使用MySQL的教程

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了docker mysql,docker安装mysql,docker mysql集群,docker run mysql,docker tomcat 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
</div>

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

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

> cat $DOCKERFILENAME | docker build -t mysql -
</div>

很好!启动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
</div>

这都是在我笔记本上的结果. 如果使用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
</div>

快来试试吧 \o/

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL 数据库双向镜像、循环镜像(复制)
  • 在Docker中使用MySQL的教程

相关文章

  • 2017-05-11MySql增加用户、授权、修改密码等语句
  • 2018-12-05学会sql数据库关系图(Petshop)
  • 2018-12-05关于mysql函数concat与group_concat使用说明事项
  • 2018-12-05MySql如何查看表大小的实例详解
  • 2018-12-05Access出现"所有记录中均未找到搜索关键字"的错误解决
  • 2017-05-11mysql中IFNULL,IF,CASE的区别介绍
  • 2018-12-05PDO防止sql注入的机制
  • 2018-12-05游标遍历的内容推荐
  • 2018-12-05Transfer在MySQL双主同步架构中的应用
  • 2018-12-05详解mysql索引使用技巧及注意事项

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Can’t open file:''[Table]mytable.MYI''
    • SQLServer 镜像功能完全实现
    • MySQL笔记之连接查询详解
    • 使用java处理字符串公式运算的方法
    • SqlServer 2005 T-SQL Query 学习笔记(3)
    • MySQL数据库利用Python操作Schema方法详解
    • SQL Server 索引结构及其使用(一)--深入浅出理解索引结构第1/4
    • 介绍一个简单的数据库Database 教程(三)
    • mysql中实现七表查询实例(二)
    • 如何在mysql5.6及以下版本查询数据库里的json详情

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有