I.概要
公式ミラーを直接使用
ドッキングウィンドウプルのmysql:5.7
しかしmysqld.cnf最適化されたか、デフォルトではありません。
第二に、パッケージミラー
ディレクトリを作成します
#Dockerfileディレクトリ ます。mkdir -pは/ opt / dockerfile / MySQLの カタログ#が持続します ます。mkdir -p /データ/ mysqlの/データ
/ opt / dockerfile / mysqlのディレクトリ構造は次のとおりです。
./ ├──dockerfile ├──mysqld.cnf └──実行。SH
dockerfile
MySQLのFROM:5.7 ADDのmysqld.cnfの /etc/mysql/mysql.conf.d/mysqld.cnf
mysqld.cnf
[クライアント] ポート = 3306 ソケット =の/ var /実行/ mysqldを/ mysqld.sock [MySQLの】 無 -auto- 焼き直し オート - 焼き直し デフォルト -characterセット= utf8mb4 [mysqldを】 ###基本設定 サーバー - ID = 2 のPID - ファイル =の/ var /実行/ mysqldを/ mysqld.pid ソケット =の/ var /実行/ mysqldを/ mysqld.sock --datadir =の/ var / libに/ mysqlの #log -error =の/ var / libに/ mysqlの/ error.logファイル #デフォルトでは、我々はlocalhostのみからの接続を受け入れます #bind -address = 127.0。0.1 シンボリック無効# - リンクは、各種セキュリティリスクを防ぐために推奨されます シンボリック -links = 0 文字 -set-サーバー= utf8mb4 sql_modeの = " NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION " デフォルト -storageエンジン= INNODB TRANSACTION_ISOLATION = READ- COMMITTED auto_increment_offset = 1 CONNECT_TIMEOUT = 20 MAX_CONNECTIONS = 3500 WAIT_TIMEOUT = 86400 は、interactive_timeout = 86400 は、interactive_timeout = 7200 log_bin_trust_function_creators = 1 WAIT_TIMEOUT = 7200 sort_buffer_size = 32M join_buffer_size = 128M max_allowed_packetの = 1024M tmp_table_size = 2097152 explicit_defaults_for_timestamp = 1 read_buffer_size = 16M read_rnd_buffer_size = 32M query_cache_type = 1 query_cache_size = 2M table_open_cacheの = 1500 table_definition_cache = 1000年 thread_cache_size = 768 back_log = 3000 open_files_limit = 65536 スキップ -name- 決意 ########ログ設定######## ログイン -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 = 10 #log -error =の/ var / libに/ mysqlの/ error.logファイル log_queries_not_using_indexes = OFF log_throttle_queries_not_using_indexes = 0 #expire_logs_days = 120 min_examined_row_limit = 100 ######## InnoDBの設定######## innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_buffer_pool_size = 6144M もしinnodb_file_per_table = 上 innodb_buffer_pool_instances = 20 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_log_file_size = 300M innodb_log_files_in_group = 2 innodb_log_buffer_size = 16M innodb_undo_logs = 128 #innodb_undo_tablespaces = 3 #innodb_undo_log_truncate = 1 #innodb_max_undo_log_size = 2G innodb_flush_method = O_DIRECT innodb_flush_neighbors = 1 innodb_purge_threads = 4 innodb_large_prefix = 1 innodb_thread_concurrency = 64 innodb_print_all_deadlocks = 1 innodb_strict_mode = 1 innodb_sort_buffer_size = 64M innodb_flush_log_at_trx_commit = 1 innodb_autoextend_increment = 64 innodb_concurrency_tickets = 5000 innodb_old_blocks_time = 千 innodb_open_files = 65536 innodb_stats_on_metadata = 0 innodb_file_per_tableを = 1 innodb_checksum_algorithm = 0 #innodb_data_file_path = ibdata1と:60M; ibdata2:60M;自動拡張:最大:1G innodb_data_file_path = ibdata1と:12M:自動拡張 #innodb_temp_data_file_path = ibtmp1:500M:自動拡張:最大:20G #innodb_buffer_pool_dump_pct = 40 #innodb_page_cleaners = 4 #innodb_purge_rseg_truncate_frequency = 128 binlog_gtid_simple_recovery = 1 #log_timestamps = システム ############## delayed_insert_limit = 100 delayed_insert_timeout = 300 delayed_queue_size = 千 DELAY_KEY_WRITE = ON disconnect_on_expired_password = ON div_precision_increment = 4 end_markers_in_json = OFF eq_range_index_dive_limit = 10 innodb_adaptive_flushing = ON innodb_adaptive_hash_index = ON innodb_adaptive_max_sleep_delay = 150000 #innodb_additional_mem_pool_size = 2097152 innodb_autoextend_increment = 64 innodb_autoinc_lock_mode = 1
run.sh
#!/ binに/ bashの ドッキングウィンドウの実行 -d --name mysqld_prod --restart =常に-e MYSQL_ROOT_PASSWORD = 123456 -p 3306:3306 -v /データ/ mysqlの/データ:の/ var / libに/ mysqlのmysqld_prod:5.7 --character-セットサーバー= utf8mb4 --collationサーバ= utf8mb4_unicode_ci
ミラーを生成します
CDは/ opt / dockerfile / MySQLの ドッキングウィンドウのビルド -t mysqld_prod:5.7。
ブートイメージ
bashの実行。SH
第三に、テスト接続
接続テスト