Docker容器学习 ---volume存储之卷

本文介绍了Docker Volume数据卷的使用,强调了其在数据持久化和容器间共享文件的重要性。通过实例展示了如何搭建docker服务,利用数据卷volume部署nginx并验证其功能。同时,文章还探讨了如何创建用户密码,将其加密并存储在证书中,以确保环境的可还原性和安全性。
摘要由CSDN通过智能技术生成

docker容器数据卷:

Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume)。
数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享。
数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。使用Docker的数据卷,
类似在系统中使用 

Docker Volume数据卷可以实现:

1)绕过“拷贝写”系统,以达到本地磁盘IO的性能,(比如运行一个容器,在容器中对数据卷修改内容,会直接改变宿主机
上的数据卷中的内容,所以是本地磁盘IO的性能,而不是先在容器中写一份,最后还要将容器中的修改的内容拷贝出来进行同步。)
2)绕过“拷贝写”系统,有些文件不需要在docker commit打包进镜像文件。
3)数据卷可以在容器间共享和重用数据
4)数据卷可以在宿主和容器间共享数据
5)数据卷数据改变是直接修改的
6)数据卷是持续性的,直到没有容器使用它们。即便是初始的数据卷容器或中间层的数据卷容器删除了,只要还有其他的
容器使用数据卷,那么里面的数据都不会丢失。

Docker数据持久化:

容器在运行期间产生的数据是不会写在镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入
层来保存数据。如果想做到数据持久化,Docker提供数据卷(Data volume)或者数据容器卷来解决问题,另外还可以
通过commit提交一个新的镜像来保存产生的数据。

搭建docker服务:

[root@foundation38 docker]# systemctl start docker.service   开启服务
[root@foundation38 docker]# systemctl enable docker.service   开机自动启动
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@foundation38 docker]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@foundation38 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

这里写图片描述
可以共享文件:

[root@foundation38 docker]# docker pull ubuntu   拉取镜像
[root@foundation38 docker]# mkdir /data1  建立目录
[root@foundation38 docker]# docker run -it --name vm1 -v /data1 ubuntu   创建容器
root@a1ea76896400:/# df
Filesystem                         1K-blocks     Used Available Use% Mounted on
overlay                            307430744 36681704 270749040  12% /
tmpfs                                1965404        0   1965404   0% /dev
tmpfs                                1965404        0   1965404   0% /sys/fs/cgroup
/dev/mapper/rhel_foundation38-root 307430744 36681704 270749040  12% /data1
shm                                    65536        0     65536   0% /dev/shm
tmpfs                                1965404        0   1965404   0% /sys/firmware
root@a1ea76896400:/# cd data1/
root@a1ea76896400:/data1# ls
root@a1ea76896400:/data1# [root@foundation38 docker]# 

这里写图片描述

[root@foundation38 docker]# docker inspect vm1 | grep vol   过滤逻辑卷组
                "Type": "volume",
                "Source": "/var/lib/docker/volumes/cf43cdd721deda6d59111031b839ad18539c8e2c6edb4114dd776ad0c8f55567/_data",
[root@foundation38 docker]# cd /var/lib/docker/volumes/cf43cdd721deda6d59111031b839ad18539c8e2c6edb4114dd776ad0c8f55567/_data
[root@foundation38 _data]# ls
[root@foundation38 _data]# cp /etc/passwd .  可以复制文件到当前目录
[root@foundation38 _data]# ls
passwd

这里写图片描述
搭建nginx查看数据卷volume:

[root@foundation38 kiosk]# docker container attach vm1 连接
root@a1ea76896400:/data1# ls 
passwd
root@a1ea76896400:/data1# pwd
/data1
root@a1ea76896400:/data1# [root@foundation38 kiosk]# 
[root@foundation38 kiosk]# docker run -d --name vm2 -v /usr/share/nginx/html nginx  创建容器
Unable to find image 'nginx:latest'</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值