数据卷:
在Docker容器内将里面的数据直接写到硬盘上
-v /data
[root@node121 data]# docker run -it --namevolume-test1 -h centos -v /docker/data centos
-i :让终端保持打开的状态
-t:启动一个tty
-h:指定主机名
-v:使用数据卷
查看docker里面的数据存入目录与宿主机数据目录对应关系表:
[root@node121 data]# docker inspect -f {{.Volumes}}volume-test1
map[/docker/data:/var/lib/docker/volumes/7149e73dd4b158608efdb1bd68eeb42b03b20e3d861ad29d39024fc8cdae5029/_data]
docker下写入文件:
[root@centos /]# cd docker/data/
[root@centos data]# ls
rscpass.dock
[root@centos data]# pwd
/docker/data
[root@centos data]# >hehe
[root@centos data]# ls
hehe rscpass.dock
对应物理机的目录:
[root@node121 _data]# pwd
/var/lib/docker/volumes/7149e73dd4b158608efdb1bd68eeb42b03b20e3d861ad29d39024fc8cdae5029/_data
[root@node121 _data]# ls
hehe rscpass.dock
将宿主机的目录挂载到docker里面:
-v src:dst
[root@node121 data]# docker run -it --namevolume-test1 -h centos -v /opt:/opt centos
-v /opt:/opt 第一个opt为宿主机的目录,第二个opt为容器的目录
宿主机:
[root@node121 opt]# mkdir rscpass
[root@node121 opt]# ls
rh rscpass
docker:
[root@centos opt]# ls
rh rscpass
将宿主机的目录挂载到docker里面设置为只读 Docker里面不能写:
[root@node121 data]# docker run -it --namevolume-test1 -h centos -v /opt:/opt:ro centos
数据卷容器
--volumes--
from
使用一个容器专门用来存数据,其它容器从这个容器里面来记取数据,即使这个容器停机了不影响访问:
[root@node121 ~]# docker run -it --name volume-test4--volumes-from volume-test1 centos
在volume-test4上面,可以访问到 volume-test1里面的数据
[root@01996f095ed6 data]# pwd
/docker/data
[root@01996f095ed6 data]# ls
hehe rscpass.dock
在volume-test1上面:
[root@centos data]# pwd
/docker/data
[root@centos data]# ls
hehe rscpass.dock