MySQL容器技术

前提:安装好Docker服务。


1、拉去镜像

    docker pull mysql/mysql-server:tag 默认版本5.7.21

    docker pull mysql/mysql-server:5.6 版本5.6.39

2、启动一个实例

    docker run -d  --name=mysql  -p 3306:3306 mysql/mysql-server

3、查看初始化密码

    docker logs mysql 2>&1 | grep GENERATED

4、用获取到的密码登录数据库,并修改root密码

    docker exec -it mysql mysql -uroot -p

        mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

5、从宿主机访问数据库容器

    docker exec -it mysql bash

6、启动时配置MySQL

docker run -d  --name=mysql  -p 3306:3306 mysql/mysql-server--character-set-server=utf8mb4 --collation-server=utf8mb4_col

备注:以上参数效果是使用 utf8mb4默认字符集和 utf8mb4_col数据库的默认排序规则

7、将增量数据映射到宿主机,达到持久数据效果

    docker run -d  --name=mysql  -p 3306:3306 -v /path:/var/lib/mysql  mysql/mysql-server

备注:1、这样做的原因是容器一旦被删除,容器里的数据也将会丢失,这对于数据库来说是不能接受的。所以应当将其映射到宿主机中。

           2、宿主机中的/path目录路径 权限应该是  mysql:mysql 且为755

8、将配置文件映射到宿主机,达到配置更改效果

    docker run -d  --name=mysql  -p 3306:3306 -v /root/docker_data:/var/lib/mysql -v /root/mysql_conf/my.cnf:/etc/my.cnf  mysql/mysql-server

备注:1、

           2、宿主机中my.cnf必须已经存在[mysqld]  user=mysql  ;即允许用户为mysql

9、运行其他初始化脚本

    如果在创建数据库后立即想要在数据库上运行任何脚本.sh或 .sql脚本,可以将它们放入主机目录,然后将该目录挂载 /docker-entrypoint-initdb.d/到容器内。

    docker run -d  --name=mysql  -p 3306:3306 -v  /path:/docker-entrypoint-initdb.d mysql/mysql-server

备注:已目录的形式将初始化脚本挂载进初始化目录中;此项笔者暂时没场景测试,还不知其能达到的效果。

10、从另一个Docker容器中的应用程序连接到MySQL

    方法1、以link方式即可(推荐)

    方法2、通过容器IP直接连接(不推荐),可能存在重启后更改IP的情况

    方法3、将3306端口映射到宿主机上(不推荐),采取该方式一定要配置好宿主机的防火墙规则和MySQL的连接权限,否则安全性将非常低。


    以上内容均参考MySQL的官方安装文档,笔者一直未将MySQL放置于容器中,总觉得没必要,或者说现在还没适合的场景来如此使用。


参考文件:https://dev.mysql.com/doc/refman/5.7/en/docker-mysql-more-topics.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 注:原文地址:http://severalnines.com/blog/mysql-docker-containe...
    空乱木阅读 11,211评论 0 7
  • 娜在群里发了一个测试: ☞下面4对情侣☟当你第一眼看到,你最喜欢哪一对?一秒看出你的性格和婚姻哟~ 第一眼,我看到...
    芒果小呆阅读 2,118评论 0 2
  • (殷殷清风 绵绵雨水情) 殷殷清风起 起来起吹 我好想好想你, 绵绵雨承情 情思情了 君是我们的魂。 天推子满果累...
    万里千年阅读 1,787评论 16 26
  • 2017年2月我观看了蓝色大海的传说,感觉有点像童话故事,剧中的人物全智贤和李敏镐颜值相当高,属于演技派的演员...
    霖璇阅读 4,466评论 0 1
  • 姜戈一阅读 1,020评论 0 0