Docker系列之MySQL安装教程

Stella981
• 阅读 668

Docker系列之MySQL安装教程
Docker系列之MySQL安装教程
有了前面的基础教程Docker系列之常用命令操作手册之后,本博客记录一篇mysql的安装教程

mysql镜像查询命令

docker search mysql

几个关键参数解释一下:

  • INDEX docker.io就是docker官网
  • NAME 镜像的名称
  • DESCRIPTION 镜像描述
  • STARS 关注数目
  • OFFICIAL 是否官方
  • AUTOMATED 是否自动的

INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati… 8930 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M… 3140 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea… 659 [OK]
docker.io docker.io/percona Percona Server is a fork of the MySQL rela… 462 [OK]
docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 66
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li… 61 [OK]
docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. … 59
docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com… 41 [OK]
docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 35 [OK]
docker.io docker.io/tutum/mysql Base docker image to run a MySQL database … 34
docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back… 28 [OK]
docker.io docker.io/prom/mysqld-exporter 23 [OK]
docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux… 22
docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 17
docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati… 16
docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing … 14
docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 13 [OK]
docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima… 6
docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t… 4 [OK]
docker.io docker.io/genschsa/mysql-employees MySQL Employee Sample Database 3 [OK]
docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK]
docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi… 2
docker.io docker.io/jelastic/mysql An image of the MySQL database server main… 1
docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0
docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu… 0 [OK]
[root@localhost ~]#

mysql镜像pull

# 不指定版本,默认latest版本
docker pull mysql

查看本地仓库镜像列表

docker images

Docker系列之MySQL安装教程
运行mysql容器

docker run --name mysql01 -d mysql

查看运行的容器

docker ps

发现并没有mysql容器运行
Docker系列之MySQL安装教程
查看所有的容器

docker ps -a

发现mysql容器并没有启动成功
Docker系列之MySQL安装教程
查看对应容器的日志

docker logs c1a7aceff20b

发现如下报错,意思是要指定MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD其中之一,意思就是要设置密码,允许空密码,或者随机生成密码

Docker系列之MySQL安装教程
删除容器

docker rm c1a7aceff20b

查看所有容器

docker ps -a

再次启动容器并指定端口映射3306

docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=11 -d mysql

查看,容器启动成功,如果出现name重复的情况,可以指定另外的name
Docker系列之MySQL安装教程
看官方文档也找到了指定编码的启动方法

docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=11 -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

因为是最新版本,客户端登录时候会提示错误:

Error No.2058 Plugin caching_sha2_password could not be loaded

解决方法是,修改加密方式,进入mysql容器

docker exec -it mysql02 bash

mysql root登录

mysql -u root -p

修改加密规则

#修改加密规则 
ALTER USER 'root'@'%' IDENTIFIED BY '11' PASSWORD EXPIRE NEVER;

对于学习可以指定’root’@’%’,表示所有ip都能访问,对于生产安全性考虑,可以指定指定ip

#更新一下用户的密码 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '11'; 

需要刷新权限,才起效

 #刷新权限
FLUSH PRIVILEGES;

重启一下密码,也可以不管

# 重置密码
alter user 'root'@'%' identified by '11';

再次登录测试成功
Docker系列之MySQL安装教程
其它操作:

# 把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面,改mysql的配置文件就只需要把mysql配置文件放在/conf/mysql既可
docker run ‐‐name mysql03 ‐v /conf/mysql:/etc/mysql/conf.d ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw
‐d mysql:tag

详细操作,建议参考Docker官方手册,入门及其它docker教程可以参考我的Docker博客专栏

本文分享 CSDN - smileNicky。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
2年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
5个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这