1.进入Docker Hub
Docker Hub Container Image Library | App Containerization
2.无需登录,左上角search搜索Mysql,带有OFFICIAL IMAGE 的是官方提供的容器
进来之后进去mysql,在Tags里面找自己需要的版本,以8.0为例
3.我用的finashell,在命令行输入 docker pull mysql:8.0
[root@localhost ~]# docker pull mysql:8.0
4.安装完成之后查看
docker images
5.要想运行mysql 需要开放端口映射,如果docker外部有mysql,需要关闭,因为mysql是运行在mysql容器里面的,指定root用户的密码,在docker hub镜像描述里面告诉我们如何启动mysql服务。
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
-e 代表环境 容器内部的环境
-d 后台运行
$ docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
6.运行mysql
docker ps 查看mysql运行的id,id为0c55686eeb36
运行 docker exec -it 0c55686eeb36 bash
输入步骤5的账户密码
mysql -u root -p
Enter password: root
7.进入mysql运行:
mysql> show databases;
8.完成。
9.外部也可以连接。以Navcat为例,新建连接,输入linux端口,账户密码就可以直接访问。
10.设置docker重启之后自动运行,原本当 systemctl restart docker之后,容器就不再运行。这个步骤设置就是不管你docker引擎怎么重启,你只要一重启,我的mysql容器也启动起来。
--restart=always
[root@localhost ~]# docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name zspmysql --restart=always -d mysql:8.0#设置容器自启动 #-p端口映射 -e:环境 --name:重命名 --restart=always :容器自启动 43545a8f47d1ea42effa483cc6443eb868ef44552c5a285cb5b3b01733abddcd [root@localhost ~]# docker ps #查看容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 43545a8f47d1 mysql:8.0 "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp zspmysql [root@localhost ~]# systemctl restart docker #重启docker引擎 [root@localhost ~]# docker ps#查看容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 43545a8f47d1 mysql:8.0 "docker-entrypoint.s…" About a minute ago Up 7 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp zspmysql # 此时mysql容器自动重启了 [root@localhost ~]#
11.数据卷,持久化数据到宿主机,容器存储数据的路径在哪?/var/lib/mysql,接下来用-v命令
-v (参数一):(参数二)
参数一:把数据存到哪里
参数二:要存储的数据在哪里
先把docker里面的容器全删除
docker rm -f $(docker ps -qa)
运行以下命令
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name zspmysql --restart=always -v /root/data:/var/lib/mysql -d mysql:8.0
运行之后会自动创建一个名为data的目录。
总结:启动mysql,开启端口映射(3306)指定用户名密码后台运行,在docker重启之后自动运行,设置数据卷,持久化数据到宿主机。


