Docker 安装MySQL

本文详细介绍了如何使用Docker部署MySQL数据库,包括拉取镜像、创建配置与数据文件夹、启动容器等步骤,并提供了常见参数说明。

1、镜像加速拉取MySQL镜像

http://www.docker-cn.com/registry-mirror

a)docker search mysql 检索MySQL

b)mysql:5.7.23  冒号后面为版本号,对应https://hub.docker.com/中的tag

[root@localhost docker]# docker pull registry.docker-cn.com/library/mysql:5.7.23


5.7.24: Pulling from library/mysql
802b00ed6f79: Pull complete 
30f19a05b898: Pull complete 
3e43303be5e9: Pull complete 
94b281824ae2: Pull complete 
51eb397095b1: Pull complete 
3f6fe5e46bae: Pull complete 
b5a334ca6427: Pull complete 
115764d35d7a: Pull complete 
719bba2efabc: Pull complete 
284e66788ee1: Pull complete 
0f085ade122c: Pull complete 
Digest: sha256:4c44f46efaff3ebe7cdc7b35a616c77aa003dc5de4b26c80d0ccae1f9db4a372
Status: Downloaded newer image for registry.docker-cn.com/library/mysql:5.7.23

2、查看MySQL镜像

a)docker images                  查看所有本地镜像

b)docker rmi image-id         删除指定的本地镜像

[root@localhost src]# docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
registry.docker-cn.com/library/mysql   5.7.23              1f47fade220d        4 weeks ago         256MB
[root@localhost src]# docker tag registry.docker-cn.com/library/mysql:5.7.23 mysql:5.7.23
[root@localhost src]# docker rmi registry.docker-cn.com/library/mysql:5.7.23

3、创建MySQL配置文件夹

[root@localhost src]# mkdir -p /opt/docker-mysql/conf.d
[root@localhost src]# cd /opt/docker-mysql/conf.d
[root@localhost mysql]# touch config-file.cnf
[root@localhost mysql]# ll
total 0
-rw-r--r--. 1 root root 0 Jan 26 15:38 my.cnf
[root@localhost mysql]# vi config-file.cnf


[mysqld]
default_time_zone = '+8:00'
lower_case_table_names = 1
log-bin=mysql-bin
binlog_format=mixed
server-id=101
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-name-resolve
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4

4、创建MySQL数据文件夹

mkdir -p /opt/docker-mysql/var/lib/mysql

5、启动MySQL

a)-p

docker指令:docker run -p ip:hostPort:containerPort mysql

使用-p参数会分配宿主机的端口映射到虚拟机。
IP表示主机的IP地址。
hostPort表示宿主机的端口。
containerPort表示虚拟机的端口。

支持的格式有三种:

ip:hostPort:containerPort:映射指定地址的指定端口到虚拟机的指定端口(不常用)
如:127.0.0.1:3306:3306,映射本机的3306端口到虚拟机的3306端口。
ip::containerPort:映射指定地址的任意端口到虚拟机的指定端口。(不常用)
如:127.0.0.1::3306,映射本机的3306端口到虚拟机的3306端口。
hostPort:containerPort:映射本机的指定端口到虚拟机的指定端口。(常用)
如:3306:3306,映射本机的3306端口到虚拟机的3306端口。

b)--name

容器名称

c)-v

改mysql的配置文件就只需要把mysql配置文件放在自定义的文件夹下

d)-e

MYSQL_ROOT_PASSWORD:root密码
MYSQL_ALLOW_EMPTY_PASSWORD :空密码
MYSQL_RANDOM_ROOT_PASSWORD:设置为yes以生成根用户的随机初始密码(使用pwgen)
这个三个参数必须指定一个
更多MySQL参数详见下方参考网站①

e)-d

后台运行

f)mysql:5.7.23

docker images 中的 REPOSITORY:TAG (注意:如果REPOSITORY的不在镜像中,它会重新拉取一个镜像并启动!

[root@localhost mysql]# docker run --name mysql \
    --restart=always \
    -p 3306:3306 \
    -v /opt/docker-mysql/conf.d:/etc/mysql/conf.d \
    -v /opt/docker-mysql/var/lib/mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7.23

4273ec5e591ed59547c9996fe9c2671ae545c72c1d1c9cbaf14d2e918e716379

 

附录:

a)解决删除镜像时image is referenced in multiple repositories

用repository和tag的方式来删除

详见参考网站②

docker rmi registry.docker-cn.com/library/mysql:5.7.23

b)参考网站

https://hub.docker.com/_/mysql/

https://blog.youkuaiyun.com/u013258415/article/details/80051082

c)查看字符集

SHOW VARIABLES LIKE 'collation_%';

SHOW VARIABLES LIKE 'character_set_%';

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值