例一:原生态引用MySQL官方版镜像 修改挂载卷
#下载MySQL镜像文件(不了解版本的可以从Docker Hub上提前查看MySQL的版本信息)
[root@localhost ~]# docker pull mysql:5.7
#在宿主机创建目录用于存储MySQL数据
[root@localhost ~]# mkdir -p /mysql/conf
[root@localhost ~]# mkdir /mysql/logs
#创建容器,提前将所需的配置从容器中拷贝到宿主机,所需的目录或文件就是传统部署方式的所在位置,所以需要有传统部署方式的基础
cp 用于将宿主机文件或目录拷贝到容器中,也可将容器中的目录或文件拷贝到宿主机中
命令格式: docker cp 容器名:目录/文件 宿主机目录 #将容器中文件或目录拷贝到宿主机
命令格式: docker cp 宿主机目录/文件 容器名:目录 #将宿主机文件/目录拷贝到容器中
[root@localhost ~]# docker run -itd --name=mysql mysql:5.7 /bin/bash #创建容器
[root@localhost ~]# docker cp mysql:/etc/mysql /mysql/conf #拷贝配置文件目录
[root@localhost ~]# docker cp mysql:/var/log/mysql /mysql/logs #拷贝日志目录
#删除mysql容器重新创建并挂载数据卷
[root@localhost ~]# docker stop mysql
[root@localhost ~]# docker rm mysql
[root@localhost mysql]# docker run -id -p 3306:3306 --name=mysql \ #映射端口
-v /mysql/conf:/etc/mysql/ \ #映射配置文件目录
-v /mysql/logs:/var/log/mysql \ #映射日志目录
-v /mysql/data:/var/lib/mysql \ #映射数据目录(不需要提前拷贝,访问数据库时会自动产生数据)
-e MYSQL_ROOT_PASSWORD=123456 \ #指定数据库密码
--env MYSQL_ROOT_HOST=% \ #允许远程登陆
mysql:5.7
#进入MySQL容器
[root@localhost mysql]# docker ps
[root@localhost mysql]# docker exec -it mysql /bin/bash
#进入容器中的MySQL数据库
root@43f0946f3e6c:/# mysql -uroot -p123456
mysql>
mysql> create database db1;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db1 |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
#宿主机查看数据卷目录
[root@localhost ~]# ll /mysql/data
浙公网安备 33010602011771号