首页 技术 正文
技术 2022年11月14日
0 收藏 880 点赞 4,734 浏览 1835 个字

目录

将数据保存在容器外部

容器在运行项目时会产生数据,比如运行的mysql容器,那么一定会有数据产生。

如果将数据保存在容器内部,那么也就意味着我们改变了原有镜像,这种做法是不可取的,因为在后期的镜像升级将变得不可能了。也就是说,运行的镜像,最好不要改变,如果必须改变,在改变后记得commit提交打成一个新的镜像

显然,数据是应该保持在容器的外部,也就是说保持在主机上了。那么容器如何读取主机中的数据呢?

挂载参数 -v

在create或者run容器时,通过-v参数指定主机的目录,挂载在容器中的某一个目录上,这样容器就在这个目录读写数据了,从而实现了容器和数据的分离。

案例:运行mysql容器,将mysql的数据放在主机/data/mysql-data中。

  1. 下载mysql镜像
 docker pull mysql:5.5
  1. 创建容器
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:指定镜像名:版本

  1. 启动容器 dockert start <镜像ID>
root@ubuntu:/home/guanfuchang# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6b0589fb6196 mysql:5.5 "docker-entrypoint.s…" 10 seconds ago Created mysql
5f3e056f65d1 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago kind_wescoff
07bf73ec9f73 redis:5.0 "docker-entrypoint.s…" 23 hours ago Up About a minute 0.0.0.0:16379->6379/tcp redis
root@ubuntu:/home/guanfuchang#
root@ubuntu:/home/guanfuchang# docker start 6b0589fb6196
6b0589fb6196
root@ubuntu:/home/guanfuchang#
root@ubuntu:/home/guanfuchang# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6b0589fb6196 mysql:5.5 "docker-entrypoint.s…" 57 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp mysql
07bf73ec9f73 redis:5.0 "docker-entrypoint.s…" 23 hours ago Up About a minute 0.0.0.0:16379->6379/tcp redis
  1. 测试连接,创建数据

  2. 检查主机上的数据

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的数据。


:-:

微信扫一扫,关注“python测试开发圈”,了解更多测试教程!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297