1、拉取mysql8的鏡像:
1 | [root@i-zgn6som8?~] #?docker?pull?mysql:8.0 |
2、創建配置和數據文件夾并修改權限:
1 2 3 4 | mkdir ?-p? /data/mysql8/conf mkdir ?-p? /data/mysql8/data chmod ?-R?755? /data/mysql8/ |
3、配置一個自定義的配置文件my.cnf:
1 | vim? /data/mysql8/conf/my .cnf |
文件內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] pid-file????????=?/var/run/mysqld/mysqld.pid socket??????????=?/var/run/mysqld/mysqld.sock datadir?????????=?/var/lib/mysql character_set_server?=?utf8mb4 collation_server?=?utf8mb4_bin secure-file-priv=?NULL symbolic-links=0 transaction_isolation=READ-COMMITTED innodb_log_file_size=256M max_allowed_packet=34M max_connections=1000 max_user_connections=500 max_connect_errors=100 default-time_zone='+8:00' |
4、通過以下命令,直接運行容器:
1 2 3 4 5 6 7 | docker?run?-d?-p?23306:3306?\ - v ?/data/mysql8/conf/ : /etc/mysql/conf .d?\ - v ?/data/mysql8/data : /var/lib/mysql ?\ -e?MYSQL_ROOT_PASSWORD= 'Jgq20230724!@#' ?\ --restart=always?\ --name=mysql8?\ mysql:8.0 |
5、此時就可以直接連接了:

補充一:之所以掛載到conf.d下面,是因為新版的mysql建議自定義的配置,掛載到?/etc/mysql/conf.d?目錄下,以?.cnf?結尾即可:
1 2 3 4 5 6 7 8 9 10 11 12 | [root@i-jiguiquan?~] #?docker?exec?-it?mysql8?/bin/bash root@decdf9fa3b4d:/ #?cat?/etc/mysql/my.cnf [mysqld] pid- file ????????=? /var/run/mysqld/mysqld .pid socket??????????=? /var/run/mysqld/mysqld .sock datadir?????????=? /var/lib/mysql secure- file -priv=?NULL #?Custom?config?should?go?here !includedir? /etc/mysql/conf .d/ |