安装docker:yum install docker
启动docker服务: systemctl start docker
关闭docker服务:systemctl stop docker
docker服务开机自启:systemctl enable docker
指定安装路径
关闭服务:systemctl stop docker
将默认安装的文件夹移动到需要的位置:mv /var/lib/docker /home/docker
创建软连接:ln -s /home/docker /var/lib/docker
启动服务:systemctl start docker
拉取指定版本镜像:docker pull mysql:8.0.32
容器启动后,进入容器内部:docker exec -it mysql8 /bin/bash
1、删除容器
1)首先需要停止所有的容器
docker stop $(docker ps -a -q)
2)删除所有的容器(只删除单个时把后面的变量改为container id即可)
docker rm $(docker ps -a -q)
以下命令可以创建
docker run -itd --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=gQHzJy6aGy4 mysql:8.0.32
以下脚本实现配置文件映射到服务器本地且可以正常启动。
docker run -itd --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=gQHzJy6aGy4 -v /home/mysql8/conf/my.cnf:/etc/my.cnf:rw mysql:8.0.32
进入容器后配置密码插件和账号权限
select user,host,plugin from user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'gQHzJy6aGy4';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'gQHzJy6aGy4';
flush privileges;
如root@%账号不存在,需要先创建然后赋权
create USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'gQHzJy6aGy4';
grant all privileges on *.* to ‘root’@’%’;
在服务器本地执行mysql -u root -p还是持续1045,但是进入容器后可以访问,进入容器后修改密码插件。
未实现配置文件映射到服务器本地。
原因:映射路径不正确,无法获取到对应文件
my.cnf默认内容如下:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/
以下命令启动失败,启动后自行关闭
docker run -itd --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=gQHzJy6aGy4 --restart=always -v /home/mysql8/log:/var/log/mysql -v /home/mysql8/data:/var/lib/mysql -v /home/mysql8/conf:/etc/mysql mysql:8.0.32
以下命令启动失败,持续正在重启
docker run -p 3306:3306 --name mysql8 --restart=always -v /home/mysql8/log:/var/log/mysql -v /home/mysql8/data:/var/lib/mysql -v /home/mysql8/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=gQHzJy6aGy4 -d mysql:8.0.32