一.使用命令拉取mysql
拉取mysql的命令为 docker pull mysql ,但是这样的话,docker会自动帮你拉取最新的版本的mysql,一般最好就是在mysql后面指定版本号,才能拉取到想要的版本。我这里选择拉取mysql5.7,命令如下:
docker pull mysql:5.7
二.检查下载的mysql镜像
[root@localhost ~]# sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 82d2d47667cf 4 days ago 450MB
三.创建root用户实例并启动
我们需要执行一下命令去创建用户实例,配置用户密码。
docker run -p 3306:3306 --name mysql \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
参数说明
-p 3306:3306 --name mysql \ # 将容器的3306端口映射到主机的3306端口,'\'指换行符,下同
-v /mydata/mysql/log:/var/log/mysql \ # 将配置文件夹挂载到主机,冒号左边为Linux的目录结构,右边为docker内部的
-v /mydata/mysql/data:/var/lib/mysql \ # 将日志文件夹挂戟到主机
-v /mydata/mysql/conf:/etc/mysql \ # 将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=123456 \ # 初始化root用户的密码为:123456
-d mysql:5.7
我这里启动的时候有问题
[root@localhost ~]# docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
WARNING: IPv4 forwarding is disabled. Networking will not work.
62156ba44e67b45507e87049ba7fec3f2be81d95c1e416d9ab504b4893650de0
WARNING: IPv4 forwarding is disabled. Networking will not work.
解决方法如下:
vim /etc/sysctl.conf
配置转发
net.ipv4.ip_forward=1
重启服务,让配置生效
systemctl restart network
查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
MySQL跟随docker启动而启动
docker update mysql --restart=always
四.使用navicat连接数据库
请自行查找资料如何使用navicat连接数据库