docker常用命令 docker是干什么的( 三 )


[root@VM_0_17_centos hellodocker]# docker run -it -v /home/hellodocker/test.txt:/test.txt --name hellodocker6 ubuntu /bin/bashroot@99d55b8d4d8a:/# cat test.txttest1这时新打开一个终端 , 通过 echo 命令向
/home/hellodocker/test.txt 文件追加内容 "test2" , 并在容器中查看 /test.txt 文件的内容:
echo "test2" >> test.txtroot@99d55b8d4d8a:/# cat test.txttest1test2这时无论是在容器中还是主机上都能查看到该文件的最新内容 。接下来在主机上查看 test.txt 的 inode 号 , 并使用 vim 编辑该文件 , 添加 "test3" , 并查看该文件的内容:

docker常用命令 docker是干什么的

文章插图
[root@VM_0_17_centos hellodocker]# ls -i test.txt527823 test.txt[root@VM_0_17_centos hellodocker]# vim test.txt[root@VM_0_17_centos hellodocker]# ls -i test.txt527050 test.txt在主机上使用 vim 编辑后 , 通过 vim 做出的修改并不能在容器中查看到
root@68c277025b02:/# cat test.txttest1test2这是因为 vim 编辑文件的时候 , 会将文件内容暂存到一个临时文件中 , 退出保存后会删除原来的文件 , 并将临时文件重命名为原文件 。但是我们标识文件是通过 inode , 因此 Docker 绑定的依然是旧的主机文件 , 所以容器中看到的依然是旧的内容 。
对于数据卷来说 , 由 docker 完全管理 , 而绑定挂载需要我们自己去维护 。我们需要自己手动去处理这些问题 , 这些问题并不仅仅是上面演示的这些 , 还有用户权限 ,  SELINUX 等 。
使用tmpfs挂载数据tmpfs 只存储在主机的内存中 。当容器停止时 , 相应的数据就会被移除 。
$ docker run -it --mount type=tmpfs,target=/test --name hellodocker7 --rm ubuntu bash

秒懂生活扩展阅读