docker安装mysql8
原文地址:https://www.cnblogs.com/chenxingyang/p/15780184.html
注意,在安装的时候遇到了问题,我安装的版本是mysql 8.0.29
1、/var/log/mysql 这个目录容器里面不存在
2、下面的这个配置加上后容器就起不起来了,查了下貌似是不支持修改了
#表名不区分大小写
lower_case_table_names=1
一、下载镜像
# 查找镜像 docker search mysql # mysql # 下载镜像 https://hub.docker.com/ docker 官方搜索查看有哪些 mysql 镜像版本 docker pull mysql:8.0.27 # 查看已下载镜像 docker images
二、创建相关目录
宿主机创建相关
mkdir -p /home/docker/mysql/mysql8/conf # 配置文件目录 mkdir -p /home/docker/mysql/mysql8/data # 数据目录 mkdir -p /home/docker/mysql/mysql8/log # 日志目录
宿主机新增配置文件
# 配置文件 vim /home/docker/mysql/mysql8/conf/my.cnf
配置文件内容
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # The MySQL Server configuration file. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html [client] default-character-set = utf8mb4 [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql # 限制导入导出文件目录的, 可自行搜索, 我暂时没有用到过, 下面这样表示不限制目录 secure-file-priv = character_set_server = utf8mb4 collation_server = utf8mb4_bin # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Custom config should go here !includedir /etc/mysql/conf.d/ # 这里是配置加密方式的 # 启动警告 'default_authentication_plugin' is deprecated and will be removed in a future release. Please use authentication_policy instead. default_authentication_plugin= mysql_native_password
三、创建并运行容器
docker run \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=root \ -v /home/docker/mysql/mysql8/data:/var/lib/mysql:rw \ -v /home/docker/mysql/mysql8/log:/var/log/mysql:rw \ -v /home/docker/mysql/mysql8/conf/my.cnf:/etc/mysql/my.cnf:rw \ -v /etc/localtime:/etc/localtime:ro \ --name mysql801 \ --restart=always \ -d mysql:8.0.27 -p 3306:3306 : 端口映射, 前宿主机后容器 -e MYSQL_ROOT_PASSWORD=root : 指定数据库root用户的密码 -v /home/docker/mysql/mysql8/data:/var/lib/mysql:rw : 容器目录与宿主机目录的映射/挂载, 后面是指定读写权限 -v /home/docker/mysql/mysql8/log:/var/log/mysql:rw : 同上 -v /home/docker/mysql/mysql8/conf/my.cnf:/etc/mysql/my.cnf:rw : 同上 -v /etc/localtime:/etc/localtime:ro : 时区文件 --name mysql8 : 容器名称 --restart=always : docker重启时容器也重启, 类似开机启动的意思 -d mysql:8.0.27
查看日志
docker logs 容器ID/容器名称 docker logs mysql801
登录容器
docker exec -it 容器ID/容器名称 /bin/bash docker exec -it mysql801 /bin/bash