首页 > 其他 > 详细

docker数据管理

时间:2020-11-04 21:07:46      阅读:33      评论:0      收藏:0      [点我收藏+]

将数据保存在容器外部
容器在运行项目时会产生数据,比如运行的mysql容器,那么一定会有数据产生。
如果将数据保存在容器内部,那么也就意味着我们改变了原有镜像,这种做法是不可取的,因为在后期
的镜像升级将变得不可能了。也就是说,运行的镜像,最好不要改变,如果必须改变,在改变后记得
commit提交打成一个新的镜像
显然,数据是应该保持在容器的外部,也就是说保持在主机上了。那么容器如何读取主机中的数据呢?
挂载参数 -v
在create或者run容器时,通过 -v 参数指定主机的目录,挂载在容器中的某一个目录上,这样容器就在
这个目录读写数据了,从而实现了容器和数据的分离。
案例:运行mysql容器,将mysql的数据放在主机/data/mysql-data中。

  1. 下载mysql镜像
    docker pull mysql:5.5
    创建容器:
    docker create --name mysql -v /data/mysql-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.5
    参数解释:
    --name mysql: 指定容器的名称为mysql
    -v /data/mysql-data:/var/lib/mysql:将主机目录/data/mysql-data挂载到容器的目录/var/lib/mysql上
    -p 3306:3306 :设置端口映射,前面的端口3306是主机端口,后面的端口3306是容器内部端口
    -e MYSQL_ROOT_PASSWORD=root: 设置容器参数,设置root用户的密码为root
    mysql:5.5:指定镜像名:版本

启动容器 dockert start <镜像ID>:
技术分享图片

测试连接,创建数据:
技术分享图片
技术分享图片
检查主机上的数据:
root@ubuntu:/home/guanfuchang#
root@ubuntu:/home/guanfuchang# ls /data/mysql-data/
6b0589fb6196.pid ibdata1 ib_logfile0 ib_logfile1 mt_gff mysql performance_schema
root@ubuntu:/home/guanfuchang# ls /data/mysql-data/mt_gff/
db.opt student.frm
root@ubuntu:/home/guanfuchang#
通过上面的查询结果可见,在主机目录/data/mysql-data中已经保存了mysql的数据。

docker数据管理

原文:https://www.cnblogs.com/zhangziqian/p/13928388.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!