容器数据卷

运行带有容器数据卷的容器实例

1
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名

举个栗子

宿主vs容器之间映射添加容器卷

  • 使用docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名 添加
1
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=ui ubuntu
  • 查看数据卷是否挂载成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
`在容器内部创建一个dockerin.txt文件
root@48955acecd79:/tmp/docker_data# touch dockerin.txt
root@48955acecd79:/tmp/docker_data# ll
total 8
drwxr-xr-x 2 root root 4096 Apr 28 09:21 ./
drwxrwxrwt 1 root root 4096 Apr 28 09:18 ../
-rw-r--r-- 1 root root 0 Apr 28 09:21 dockerin.txt
`在宿主机目录下查看该文件
root@48955acecd79:/tmp/docker_data# [root@iZ8vbfaek3x3ogtpxnpnwfZ ~]#
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]#
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]#
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# cd /tmp/host_data/
[root@iZ8vbfaek3x3ogtpxnpnwfZ host_data]# ll
total 0
-rw-r--r-- 1 root root 0 Apr 28 17:21 dockerin.txt
`在宿主机创建一个文件
[root@iZ8vbfaek3x3ogtpxnpnwfZ host_data]# touch host.txt

`在容器查看文件
[root@iZ8vbfaek3x3ogtpxnpnwfZ host_data]# docker exec -it 48955acecd79 bash
root@48955acecd79:/# cd /tmp/docker_data/

+ 容器和宿主机之间数据共享

[root@iZ8vbfaek3x3ogtpxnpnwfZ /]# docker ps
[root@iZ8vbfaek3x3ogtpxnpnwfZ /]#
[root@iZ8vbfaek3x3ogtpxnpnwfZ /]# docker commit -m="vim cmd add ok" -a="ggls" 356e32244966 ggls/ubuntu:1.5sha256:87e99e19eeef47d4f0daaffc8498690614e0d95eae60ef61b439abe97b62fd16[root@iZ8vbfaek3x3ogtpxnpnwfZ /]# docker images
[root@iZ8vbfaek3x3ogtpxnpnwfZ /]# shell

+ 主机修改,docker同步获得

+ docker容器stop,主机修改,docker容器重启数据同步

[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps
[root@iZ8vbfaek3x3ogtpxnpnwfZ ~]# docker ps -a -q | xargs docker rm -f562278524cdacdee90a8c77d

+ 默认是可读可写的

```shell
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名
  • 修改成容器只读
1
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

卷的继承和共享

  • 容器1完成和宿主机的映射
    • 容器2继承容器1,则容器2操作后同步到容器1和宿主机
    • 宿主机操作同步到容器1,容器2
    • 容器1操作同步到宿主机,容器2
1
docker run -it --privileged=true --volumes-from 父类 --name u2 ubuntu