栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker学习(15)——数据卷容器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker学习(15)——数据卷容器

1. 概念

多个容器之间实现数据共享。

2. 示例

(1)启动父容器

[root@192 ~]# docker run -it --name centos01 dong/centos:1.0
[root@0829be13af68 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume1  volume2
[root@0829be13af68 /]# 

注意:

dong/centos:1.0:假如容器设定了版本,启动的时候需要指定版本,否则会报错。

(2)启动子容器

使用命令:--volumes-from(实现容器间的数据共享)

[root@192 ~]# docker run -it --name centos02 --volumes-from centos01 dong/centos:1.0
[root@d2ae0ca7ca9c /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume1  volume2
[root@d2ae0ca7ca9c /]# 

(3)数据同步测试

在centos2的volume1下创建test文件,centos1的volume1下可实现文件同步。

 (4)删掉父容器测试

删除父容器centos1

[root@192 ~]# docker ps -a
ConTAINER ID   IMAGE             COMMAND                  CREATED         STATUS                      PORTS     NAMES
d2ae0ca7ca9c   dong/centos:1.0   "/bin/sh -c /bin/bash"   7 minutes ago   Up 6 minutes                          centos02
0829be13af68   dong/centos:1.0   "/bin/sh -c /bin/bash"   9 minutes ago   Exited (0) 30 seconds ago             centos01
[root@192 ~]# docker rm -f 0829be13af68
0829be13af68
[root@192 ~]# docker ps -a
ConTAINER ID   IMAGE             COMMAND                  CREATED         STATUS                    PORTS     NAMES
d2ae0ca7ca9c   dong/centos:1.0   "/bin/sh -c /bin/bash"   7 minutes ago   Up 7 minutes                        centos02
[root@192 ~]# 

查看子容器文件是否存在

[root@d2ae0ca7ca9c volume1]# ls
test
[root@d2ae0ca7ca9c volume1]# 

发现子容器内的文件依然存在。

3. 数据库数据同步
[root@192 mysql]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql1 mysql

[root@192 mysql]# docker run -d -p 3311:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql2 --volumes-from mysql1 mysql

注意:

这里的映射的端口不能相同,否则会报错。

[root@192 ~]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql2 mysql
[root@192 ~]# docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql3 --volumes-from mysql2 mysql
docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql3 (2db8d849098df6205ca744ed209952b6dadb8abd3289b5e90b4c2d990ec42c65): Bind for 0.0.0.0:3310 failed: port is already allocated.
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307610.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号