环境:
Docker version 20.10.18
MySQL:8.0.18
#拉取镜像
docker pull mysql:8.0.18
#创建数据目录和配置文件
#在宿主机创建放置mysql的配置文件的目录和数据目录,并且进行授权
mkdir -p /usr/mysql/conf /usr/mysql/data
chmod -R 755 /usr/mysql/
#在上面创建的配置文件目录/usr/mysql/conf下创建MySQL的配置文件my.cnf
vim /usr/mysql/conf/my.cnf
[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4
[mysqld]
#pid-file = /var/run/mysqld/mysqld.pid
#socket = /var/run/mysqld/mysqld.sock
#datadir = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
datadir = /usr/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/
#启动容器
docker run --restart=always -d --name mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
问题:本地无法访问
#进入容器内部
docker exec -it id ./bin/bash
#连接mysql
mysql -uroot -p
#使用mysql库
mysql> use mysql
#修改访问主机以及密码等,设置为所有主机可访问
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql>flush privileges;