通过官方Mysql镜像并修改配置文件并重新打包新镜像步骤


官方的docker容器均采用默认的配置,如果直接拿来使用,有些配置不太适合我们使用,比如最大连接数,缓存,character编码等,因此需要在官方的基础上修改好配置变成自己合适的,后续就可以通过改造后的镜像就直接使用了,现记录过程如下。

1.拉取镜像

docker pull mysql:5.7.36

2.启动镜像

docker run -itd --name mysql_5.7.36 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.36

3.准备配置文件

cat > my.cnf << EOF
[client] 
default-character-set=utf8mb4

[mysql]
port = 3306
default-character-set=utf8mb4
 
[mysqld]
port = 3306
default_storage_engine=InnoDB
datadir = /var/lib/mysql
character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
max_connections = 2000
max_allowed_packet = 128M
innodb_file_per_table = 1
tmp_table_size = 134217728
max_heap_table_size = 134217728

lower_case_table_names=1

log-bin = mysql-bin
max_binlog_size = 1024M
expire_logs_days = 1
log_slave_updates = 1
server-id = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
EOF

4.将修改后的配置文件拷回去

##docker cp my.cnf 容器名称或容器id:/etc/my.cnf

docker cp my.cnf d9437146d6b3:/etc/my.cnf

5.进入容器确认文件已拷进去

docker exec -it d9437146d6b3 /bin/bash
cat /etc/my.conf
exit

6.停止容器

docker stop d9437146d6b3

7.将修改好的容器打包成新镜像以供后续使用

docker commit -a "mysql5.7.36" -m "sendi_mysql_5.7.36" d9437146d6b3 sendi_mysql:5.7.36

8.重新以新镜像启动一个容器

docker run -itd --name mysql_5.7.36 -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 sendi_mysql:5.7.36

9.测试

mysql -uroot -p123456 -h127.0.0.1 -P13306 -A

猜你喜欢

转载自blog.csdn.net/jxlhljh/article/details/126759477