docker

类型
docker
OS
学习时间
状态
进行中
参考资料
网站
封面
下载 (1).jpg

常用软件安装

MySQL

docker pull mysql:5.7.27
 
--- ~/mysql/ ---data ---conf --mysql.cnf (配置文件放在这) ---mylog
 
my.cnf 配置文件
[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] datadir=/data character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' default-storage-engine=INNODB log-error=/mylog/error.log #开启慢查询 slow_query_log = on #定义1秒以上为慢查询 long_query_time=1 #慢查询日志路径 slow-query-log-file =/mylog/slow.log
实例化docker容器
docker run --name mysql5.7.27 -d -p 3306:3306 -v ~/mysql/data:/data -v ~/mysql/conf:/etc/mysql/conf.d -v ~/mysql/mylog:/mylog -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.27
报错
2021-07-22T07:06:15.339552Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2021-07-22T07:06:15.341509Z 0 [ERROR] Could not open file '/mylog/error.log' for error logging: Permission denied 2021-07-22T07:06:15.341628Z 0 [ERROR] Aborting
因为容器默认使用的是mysql用户。 因此我们需要把映射的文件夹修改owner:
//1. 首先进入容器 docker exec -it <容器ID> /bin/bas //2. 查看mysql用户权限 cat /etc/passwd | grep mysql //结果,mysql权限是999 mysql:x:999:999::/home/mysql:/bin/sh //3. 快捷键退出(Ctrl+P+Q) //4. 修改文件权限 chown -R 999 mylog //5. 重启docker容器 docker restart <容器ID>