一、概述

直接使用官方的镜像

docker pull mysql:5.7

但是mysqld.cnf并没有优化,还是默认的。

二、封装镜像

创建目录

# dockerfile目录
mkdir -p /opt/dockerfile/mysql
# 持久化目录
mkdir -p /data/mysql/data

/opt/dockerfile/mysql 目录结构如下:

./
├── dockerfile
├── mysqld.cnf
└── run.sh

dockerfile

FROM mysql:5.7
ADD mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf

mysqld.cnf

[client]
port=
socket = /var/run/mysqld/mysqld.sock
[mysql]
no-auto-rehash
auto-rehash
default-character-set=utf8mb4
[mysqld]
###basic settings
server-id =
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/lib/mysql/error.log
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=
character-set-server = utf8mb4
sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
default-storage-engine=INNODB
transaction_isolation = READ-COMMITTED
auto_increment_offset =
connect_timeout =
max_connections =
wait_timeout=
interactive_timeout=
interactive_timeout =
log_bin_trust_function_creators =
wait_timeout =
sort_buffer_size = 32M
join_buffer_size = 128M
max_allowed_packet = 1024M
tmp_table_size =
explicit_defaults_for_timestamp =
read_buffer_size = 16M
read_rnd_buffer_size = 32M
query_cache_type =
query_cache_size = 2M
table_open_cache =
table_definition_cache =
thread_cache_size =
back_log =
open_files_limit =
skip-name-resolve
########log settings########
log-output=FILE
general_log = ON
general_log_file=/var/lib/mysql/general.log
slow_query_log = ON
slow_query_log_file=/var/lib/mysql/slowquery.log
long_query_time=
#log-error=/var/lib/mysql/error.log
log_queries_not_using_indexes = OFF
log_throttle_queries_not_using_indexes =
#expire_logs_days =
min_examined_row_limit =
########innodb settings########
innodb_io_capacity =
innodb_io_capacity_max =
innodb_buffer_pool_size = 6144M
innodb_file_per_table = on
innodb_buffer_pool_instances =
innodb_buffer_pool_load_at_startup =
innodb_buffer_pool_dump_at_shutdown =
innodb_log_file_size = 300M
innodb_log_files_in_group =
innodb_log_buffer_size = 16M
innodb_undo_logs =
#innodb_undo_tablespaces =
#innodb_undo_log_truncate =
#innodb_max_undo_log_size = 2G
innodb_flush_method = O_DIRECT
innodb_flush_neighbors =
innodb_purge_threads =
innodb_large_prefix =
innodb_thread_concurrency =
innodb_print_all_deadlocks =
innodb_strict_mode =
innodb_sort_buffer_size = 64M
innodb_flush_log_at_trx_commit=
innodb_autoextend_increment=
innodb_concurrency_tickets=
innodb_old_blocks_time=
innodb_open_files=
innodb_stats_on_metadata=
innodb_file_per_table=
innodb_checksum_algorithm=
#innodb_data_file_path=ibdata1:60M;ibdata2:60M;autoextend:max:1G
innodb_data_file_path = ibdata1:12M:autoextend
#innodb_temp_data_file_path = ibtmp1:500M:autoextend:max:20G
#innodb_buffer_pool_dump_pct =
#innodb_page_cleaners =
#innodb_purge_rseg_truncate_frequency =
binlog_gtid_simple_recovery=
#log_timestamps=system
##############
delayed_insert_limit =
delayed_insert_timeout =
delayed_queue_size =
delay_key_write = ON
disconnect_on_expired_password = ON
div_precision_increment =
end_markers_in_json = OFF
eq_range_index_dive_limit =
innodb_adaptive_flushing = ON
innodb_adaptive_hash_index = ON
innodb_adaptive_max_sleep_delay =
#innodb_additional_mem_pool_size =
innodb_autoextend_increment =
innodb_autoinc_lock_mode =

run.sh

#!/bin/bash
docker run -d --name mysqld_prod --restart=always -e MYSQL_ROOT_PASSWORD= -p : -v /data/mysql/data:/var/lib/mysql mysqld_prod:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

生成镜像

cd /opt/dockerfile/mysql
docker build -t mysqld_prod:5.7 .

启动镜像

bash run.sh

三、测试连接

连接测试

docker封装mysql镜像的更多相关文章

  1. Docker启动Mysql镜像

    date: 2020-03-14 17:00:00 updated: 2020-03-14 18:00:00 Docker启动Mysql镜像 管理员权限!!! docker run -p 3306:3 ...

  2. Docker安装mysql镜像并进行主从配置

    Docker安装mysql镜像并进行主从配置 1.下载需要的mysql版本镜像 docker pull mysql:5.6 2.启动mysql服务实例(基本启动) #启动主mysql docker r ...

  3. 使用docker中mysql镜像

    1.拉取mysql镜像 docker pull mysql:5.6 2.运行mysql的镜像生成一个正在运行的容器,可以通过docker contain ls得到容器的id信息 docker run ...

  4. docker 创建mysql镜像,并成功进行远程连接

    1.安装 1.1 拉取镜像 docker pull mysql 拉取成功可以验证一下 docker images 1.2 创建并启动一个mysql容器 docker run --name ly-mys ...

  5. Docker下载mysql镜像

    1.使用命令查看mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL [OK] mariadb MariaDB [OK] mysql/ ...

  6. 用Docker构建MySQL镜像

    构建MySQL镜像 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过D ...

  7. Docker 封装java镜像

    一.概述 目前java采用的框架是Spring,服务器直接通过 java -jar xxx.jar 就可以启动服务了. 二.jdk镜像 在docker中跑java应用,需要有jdk环境支持才行. 获取 ...

  8. Docker创建mysql镜像

    原文: https://blog.csdn.net/uk8692/article/details/49386679 https://blog.csdn.net/qq362228416/article/ ...

  9. docker下MySQL镜像的使用方法

    预习: 使用到的docker命令: docker images   显示本地有的镜像 docker pull +镜像名称   从docker hub上面拉取镜像 docker run    --nam ...

随机推荐

  1. 201871010121-王方《面向对象程序设计(Java)》第四周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  2. for each 语句

    for each 语句是java5新增,在遍历数组.集合的时候,for each拥有不错的性能. for each 虽然能遍历数组或者集合,但是只能用来遍历,无法在遍历的过程中对数组或者集合进行修改. ...

  3. LayUI的基本使用 - Tab选项卡切换显示对应数据

    要求:实现tab选项卡改变的同时展示数据也跟着改变 实现条件: 1. 选项卡 [官网 – 文档/示例 – 页面元素 – 选项卡] 2.数据表格 [官网 – 文档/示例 – 内置模块 – 数据表格] 3 ...

  4. hbase运行原理

    HBase特点 1)海量存储 Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据.这与Hbase的极易扩展性息息相关.正式因为Hbase良好 ...

  5. Python面向对象 | 抽象类和接口类

    一.抽象类(规范的编程模式) 什么是抽象类 抽象类是一个特殊的类,它的特殊之处在于只能被继承,不能被实例化.抽象类的本质还是类,指的是一组类的相似性,而接口只强调函数属性的相似性. 为什么要有抽象类 ...

  6. restQL 微服务查询语言

    restQL 是一个强大的微服务查询语言,类似sql,支持并行.链式.过滤.同时官方也提供了多种语言的实现 而且还有一个manger 与 graphql 以及Falcor的比较 以下是来自官方的比较说 ...

  7. django -- ORM实现出版社增删改查

    前戏 我们来完成一个图书管理系统的增删改查 表结构设计 1. 出版社 id   name 2. 作者 id  name 3. 书 id  title  出版社_id 4. 作者_书_关系表 id  书 ...

  8. 讲题专用——线段树——优化DP

    题目链接:http://codevs.cn/problem/3342/ 题解: 最小化最大值:二分 二分最长空题段 令f[i]表示抄第i道题所花费的最小时间 状态转移方程:f[i]=min(f[j]) ...

  9. SQL之存储过程详细介绍及语法(转)

    1:定义 存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行. 存储过程分为系统存储过程和自定义 ...

  10. 执行git log/status等命令时,重新打开了个窗口,必须按q才能退出

    终端运行: git config --global core.pager ''