Docker安裝mysql
mysql 数据持久化问题!
# 命令 获取 搜索mysql镜像
[root@liulihui docker]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation?? 13570 [OK]
mariadb MariaDB Server is a high performing open sou?? 5172 [OK]
phpmyadmin phpMyAdmin - A web interface for MySQL and M?? 700 [OK]
percona Percona Server is a fork of the MySQL relati?? 596 [OK]
# 下载mysql镜像[5.7]
[root@liulihui docker]# docker pull mysql:5.7
[root@liulihui docker]# docker pull mysql:5.7
5.7: Pulling from library/mysql
72a69066d2fe: Pull complete
93619dbc5b36: Pull complete
99da31dd6142: Pull complete
626033c43d70: Pull complete
37d5d7efb64e: Pull complete
ac563158d721: Pull complete
d2ba16033dad: Pull complete
0ceb82207cd7: Pull complete
37f2405cae96: Pull complete
e2482e017e53: Pull complete
70deed891d42: Pull complete
Digest: sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
# 查看mysql镜像
[root@liulihui docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 c20987f18b13 11 months ago 448MB
# 运行容器 需要做数据挂载 , # 启动mysql 容器 需要配置密码的 特别注意;
# 官方的测试如下:
# docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
# -e 表示配置环境,-e MYSQL_ROOT_PASSWORD=my-secret-pw 这里是配置密码
# 启动mysql;
-d #后台运行
-p #暴露映射端口
-e #环境配置
-v #挂载目录
--name # 容器命名
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
#查看启动
[root@liulihui docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48e1d422eae2 mysql:5.7 "docker-entrypoint.s?? 7 minutes ago Up 7 minutes 33060/tcp, 0.0.0.0:3310->3306/tcp, :::3310->3306/tcp mysql01
本地测试链接msyql数据库,Navicat 测试,创建 test 数据库
查看挂载目录是否ok?
# 本地创建数据库test 查看 本机挂载目录
[root@liulihui /]# cd /home/
[root@liulihui home]# ls
cehis centos7 mysql test.java
[root@liulihui home]# cd mysql/
[root@liulihui mysql]# ls
conf data
[root@liulihui mysql]# cd data/
[root@liulihui data]# ls
auto.cnf ca.pem client-key.pem ibdata1 ib_logfile1 mysql private_key.pem server-cert.pem sys
ca-key.pem client-cert.pem ib_buffer_pool ib_logfile0 ibtmp1 performance_schema public_key.pem server-key.pem test
容器删除,本地的挂载目录以及数据是否存在???
# 查看运行的容器
[root@liulihui /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
48e1d422eae2 mysql:5.7 "docker-entrypoint.s?? 21 minutes ago Up 21 minutes 33060/tcp, 0.0.0.0:3310->3306/tcp, :::3310->3306/tcp mysql01
99d3955ffd06 portainer/portainer "/portainer" 4 days ago Up 5 hours 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp nifty_bassi
# 删除 容器 mysql01
[root@liulihui /]# docker rm -f mysql01
mysql01
发现我们挂载本地数据依旧存在,这就实现了容器数据卷持久化功能!
# 查看挂载目录
[root@liulihui /]# cd /home/
[root@liulihui home]# ls
cehis centos7 mysql test.java
[root@liulihui home]# cd mysql/
[root@liulihui mysql]# ls
conf data
[root@liulihui mysql]# cd data/
[root@liulihui data]# ls
auto.cnf ca.pem client-key.pem ibdata1 ib_logfile1 mysql private_key.pem server-cert.pem sys
ca-key.pem client-cert.pem ib_buffer_pool ib_logfile0 ibtmp1 performance_schema public_key.pem server-key.pem test
[root@liulihui data]#