记录Docker安装Mysql容器,及其数据卷的配置

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重启之后自动运行,设置数据卷,持久化数据到宿主机。
 

你可能感兴趣的:(笔记,docker,容器,运维,mysql,linux)