«

Docker 数据卷管理

指尖二进制 • 1 年前 • 846 次点击 • DOCKER


[TOC]

/usr/share/nginx/html
-v /opt/xiaoniao:/usr/share/nginx/html
持久化数据卷(文件或目录)
-v 卷名:/data
-v src(宿主机的目录):dst(容器的目录)
数据卷容器
--volumes-from(跟某一个已经存在的容器挂载相同的卷)

1:拷贝物理主机目录下所有内容到容器

[root@docker-01 ~]# docker ps   #查看nginx容器id
CONTAINER ID
0d2d8854349a nginx:latest
[root@docker-01 ~]# vim /opt/html/index.html
this is a test page!
[root@docker-01 ~]# docker container cp /opt/html/. 0d2d8854349a:/usr/share/nginx/html  #把当前目录/opt/html/.拷贝到容器目录下
[root@docker-01 ~]# docker exec -it 0d2d8854349a /bin/bash
root@0d2d8854349a:/# ls -l /usr/share/nginx/html/
50x.html    index.html  
root@0d2d8854349a:/# cat /usr/share/nginx/html/index.html 
this is a test page!

2:物理主机和容器共享使用一个目录

上述修改代码不方便还需要进入到容器里面修改,为了更改代码方便直接在物理机就能设置修改代码
-v 关联卷

[root@docker-01 ~]# docker run -itd -p 88:80 -v /opt/html/.:/usr/share/nginx/html nginx:latest
[root@docker-01 ~]# curl 10.0.0.11:88
this is a test page!
[root@docker-01 ~]# vim /opt/html/index.html 
this is a test page!
this is a test page!
[root@docker-01 ~]# curl 10.0.0.11:88
this is a test page!
this is a test page!

3:分配卷使用

其实就是分配一个目录

[root@docker-01 ~]# docker run -d -p 89:80 -v test:/usr/share/nginx/html nginx:latest
[root@docker-01 ~]# docker ps -a -l
[root@docker-01 ~]# docker volume inspect test #查看test卷详细信息
[
    {
        "CreatedAt": "2020-03-23T22:36:43+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/test/_data",
        "Name": "test",
        "Options": null,
        "Scope": "local"
    }
]
[root@docker-01 ~]# cd /var/lib/docker/volumes/test/_data/
[root@docker-01 _data]# ls
50x.html  index.html
[root@docker-01 _data]# curl 10.0.0.11:89
Welcome to nginx!
[root@docker-01 _data]# rm -rf *
[root@docker-01 _data]# curl 10.0.0.11:89
403
[root@docker-01 _data]# cp /opt/html/index.html .
[root@docker-01 _data]# curl 10.0.0.11:89
this is a test page!

共享使用一个卷

[root@docker-01 ~]# docker run -d -p 90:80 -v test:/usr/share/nginx/html nginx:latest
f306f3ec31dd963995f6b47aa1ac07b4532dac4e3fb8060e25e03b75a2c01213
[root@docker-01 ~]# curl 10.0.0.11:90
this is a test page!
this is a test page!
还没收到回复