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_%';
本文详细介绍了如何使用Docker部署MySQL数据库,包括拉取镜像、创建配置与数据文件夹、启动容器等步骤,并提供了常见参数说明。
7280

被折叠的 条评论
为什么被折叠?



