3.【原创】使用Docker安装mysql

1.查看当前镜像列表可知当前无镜像:

root@ubuntu-xenial:/etc/docker# docker images
REPOSITORY(仓库)          TAG(标识)                 IMAGE ID(镜像唯一标识)            CREATED(拉取时间)             SIZE(大小)

  

2.访问doucker hub查看想安装的mysql版本的TAG值(地址:https://hub.docker.com/),并执行如下指令:其中":5.7"是指定版本,此参数不指定将拉取最近版本,即":latest":

sudo docker pull mysql:5.7

 

3.查看镜像是否拉取成功:

root@ubuntu-xenial:/etc/docker# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 9cfcce23593a        4 weeks ago         448MB

  

4.启动镜像实例,并设置初始化参数:

root@ubuntu-xenial:/home/vagrant# docker run -p 3306:3306 --name mysql 
> -v /mydata/mysql/log:/var/log/mysql 
> -v /mydata/mysql/data:/var/lib/mysql 
> -v /mydata/mysql/conf:/etc/mysql 
> -e MYSQL_ROOT_PASSWORD=root 
> -d mysql:5.7
ba385514ac909d67e6d388c9d7fa441c19ed237edf7c3323b6a50ac59a53be5e

  

  4.1.参数解释:

序号 指令 解释
1

docker run -p 3306:3306 --name mysql

【docker run】:运行一个镜像实例容器的指令

【-p 3306:3306】:将宿主机的端口映射到实例容器的端口

【--name mysql】:给新运行的镜像实例指定名称

【 】:指令换行符,后面将不再解释

2 -v /mydata/mysql/log:/var/log/mysql

将镜像实例的【日志】映射到宿主机的指定目录

宿主机:/mydata/mysql/log

实   例:/var/log/mysql

3 -v /mydata/mysql/data:/var/lib/mysql

将镜像实例的【数据】映射到宿主机的指定目录

宿主机:/mydata/mysql/data

实   例:/var/lib/mysql

4 -v /mydata/mysql/conf:/etc/mysql

将镜像实例的【配置】映射到宿主机的指定目录

宿主机:/mydata/mysql/conf

实   例:/etc/mysql

5 -e MYSQL_ROOT_PASSWORD=root

指定镜像实例的mysql的root用户的密码
6 -d mysql:5.7 后台运行镜像实例
7
ba385514ac909d67e6d388c9d7fa441c19ed237edf7c3323b6a50ac59a53be5e
实例运行后返回的镜像实例的唯一主键

  4.2.【思考】可使用"docker exec -it mysql /bin/base"(其中"mysql"是实例名称)进入实例内部进入到指定文件夹(上述表格中的镜像内的文件路径)中进行查看或配置。但是往往这样做比较麻烦,所有才使用数据映射的方式进行操作。

5.查看当前正在运行中的容器:

root@ubuntu-xenial:/home/vagrant# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
ba385514ac90        mysql:5.7           "docker-entrypoint.s…"   30 minutes ago      Up 30 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

  

6.修改mysql的配置:此处以修改mysql字符编码为例:

sudo vi /mydata/mysql/conf/my.conf

  

  6.1.配置的内容:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

  

7.重启mysql镜像实例(指令中的"mysql"为实例名称,也可以用实例列表中CONTAINER ID中的值):

sudo docker restart mysql

  

8.使用容器id(“0bd04790d4ee”为CONTAINER ID)设置mysql随docker启动:

sudo docker update 0bd04790d4ee --restart=always

  

原文地址:https://www.cnblogs.com/Nick-Hu/p/13290853.html