docker的数据管理
数据卷
1.创建数据卷
[root@openEuler-1 /]# docker volume create test
test
[root@openEuler-1 /]# docker volume ls
DRIVER VOLUME NAME
local test
[root@openEuler-1 /]# docker volume inspect test
[{"CreatedAt": "2025-08-23T20:21:27+08:00","Driver": "local","Labels": {},"Mountpoint": "/var/lib/docker/volumes/test/_data","Name": "test","Options": {},"Scope": "local"}
]
2.绑定数据卷
[root@openEuler-1 /]# docker run -d -P --name web -v /webapp:/opt/webapp nginx:1.17.1
156c0bc3b05a60eb8aac9c8faf6fa6b750830c623c71c8b8cacd02cf6957f8cf
[root@openEuler-1 /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
156c0bc3b05a nginx:1.17.1 "nginx -g 'daemon of…" 21 seconds ago Up 19 seconds 0.0.0.0:32768->80/tcp web
bf9f9b03a3e2 ubuntu:18.04 "/bin/bash" 40 minutes ago Exited (0) 40 minutes ago trusting_chatterjee
0cf0f6e06be4 f9a80a55f492 "/bin/bash" About an hour ago Exited (0) About an hour ago zen_hypatia
db9442307637 f9a80a55f492 "echo 'hello world'" About an hour ago Exited (0) About an hour ago friendly_benz
3dd062ba408c f9a80a55f492 "/bin/bash" About an hour ago Up About an hour stoic_kilby
b34aa516d411 f9a80a55f492 "echo 111" About an hour ago Exited (0) About an hour ago pedantic_hugle
04247d9734ba f9a80a55f492 "echo hello" About an hour ago Exited (0) About an hour ago gifted_almeida
[root@openEuler-1 /]# ls
afs bin boot dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var webapp
[root@openEuler-1 /]# cd /webapp/
[root@openEuler-1 webapp]# ls
[root@openEuler-1 webapp]# touch test.sh
[root@openEuler-1 webapp]# ls
test.sh
[root@openEuler-1 webapp]# docker exec -it web bash
root@156c0bc3b05a:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@156c0bc3b05a:/# cd opt/
root@156c0bc3b05a:/opt# ls
webapp
root@156c0bc3b05a:/opt# cd webapp/
root@156c0bc3b05a:/opt/webapp# ls
test.sh
数据卷容器
1.首先创建一个数据卷容器
[root@openEuler-1 webapp]# docker run -it -v /dbdata --name dbdata myubuntu:latest
root@f38e5b2b772e:/# ls
bin dbdata etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
2.使用--volumes-from来挂载容器中的数据卷
[root@openEuler-1 ~]# docker run -it --volumes-from dbdata --name db1 myubuntu:latest
root@c15c195c0ba7:/# ls
bin dbdata etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
root@c15c195c0ba7:/# cd /dbdata/
root@c15c195c0ba7:/dbdata# echo test1 > test1.txt
3.查看结果
root@f38e5b2b772e:/# cd dbdata/
root@f38e5b2b772e:/dbdata# ls
test1.txt
4.如果删除了挂载的容器,数据卷并不会自动删除,如果想要删除一个数据卷,必须在删除最后一个还挂载的容器时使用docker rm -v 命令来指定删除关联容器。