docker中怎么挂载数据卷


这期内容当中小编将会给大家带来有关docker中怎么挂载数据卷,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。查看命令参数:docker run –help看到-v的命令帮助这里我们可以看到-v相关命令一共有三个参数解释:创建一个容器数据卷,要挂载容器数据卷首先要有容器数据卷,这个命令就是创建一个容器数据卷。比如:上面的命令即从名为centos的镜像启动(守护线程)一个容器,容器命名为DATA,启动之后执行ls命令。并且将容器中的/var/volume目录(或文件)分享出去,这样就创建了一个数据卷容器。上面的命令等价于:docker run -v /var/volume-name DATA centos这里的/var/valume建议写成绝对路径,虽然相对路径没有报错,但是很容易引起误解。因为这里即使写成相对路径,docker也会当成绝对路径来处理。比如把这里的/var/valume写成./var/volume或var/valume结果都一样,这对于开发者来说很容易误解,所以建议写成绝对路径。我们注意到上面查询出来的–volume命令的参数类型是list,所以我们可以在一个容器中创建多个数据卷。比如:这样我们就在DATA容器中创建了两个数据卷除了上面的创建数据卷容器外,我们还可以在Dockerfile中创建数据卷,使用 VOLUME 命令。比如:注:这里的ls命令并不是必须的,因为容器启动后要执行一个命令,这个命令可以写在docker启动命令行的最后,也可以写在Dockerfile的CMD命令中,且命令行中的命令会覆盖Dockerfile中的CMD命令解释:从指定容器安装数据卷当我们已经创建好一个数据卷容器后或者已经存在一个数据卷容器,我们如何去加载这个数据卷容器到另一个容器呢?这就需要用到–volumes-from命令。这个命令就是从指定的一个或多个数据卷容器加载数据卷到当前的容器中。加载的意思就是如果当前容器如果存在数据卷的目录结果则被覆盖,如果没有则直接加载。比如:上面的命令即从名为centos的镜像中启动(守护线程)一个容器,容器命名为client,并且从名为DATA的容器中加载数据卷(读写),启动后执行ls命令。这样DATA中的数据卷(/var/volume)就和client中的加载的数据卷(/var/volume)共享了,只要任意一方对数据卷做出更改都会同步到另一方。值得注意的时这里并不是利用类似复制粘贴的功能实现的同步数据,而是直接修改数据,这对于超大文件很有用。这里的–volumes-from命令的参数类型同样是list,所以也是可以指定多个数据卷容器的。比如:注:–volumes-from加载的数据卷可以赋予读写权限[rw|ro],也就是read write和read only,只读和读写。默认使用数据卷相同的权限。解释:为容器选择数据卷驱动此命令不在此次讨论范围内,读者有兴趣可自行查阅相关资料。上面讲了如何把容器作为一个数据卷,在容器之间共享数据的方法。但其实更多的时候我们是把主机中的目录作为一个数据卷加载到容器中,容器中的目录“外挂”,以方便运维人员维护和修改项目配置。上面的命令等价于:-v [host-dir]:[container-dir]:[rw|ro]解释:将主机的目录(host-dir)作为数据卷加载到容器(container-dir)中,并指定读写权限默认使用数据卷的权限比如:上面的命令即从名为tomcat的镜像(守护线程)启动一个容器,容器名随机。挂载主机目录/var/logs作为数据卷,并加载到当前启动的容器/var/host_logs,指定只读权限。这样的话就把主机的logs目录和容器的host_logs目录数据共享,当容器(数据卷)中或主机(数据卷)数据更改会同步。实际的以些应用场景有项目的配置文件挂载、日志文件挂载等,因为这些文件都是经常查看和修改的,如果每次都进入容器修改和查看十分麻烦,所以直接挂载一个主机数据卷就可以通过修改和查看主机 香港云主机的数据卷同步容器中的数据,简化的操作步骤。这里有几个点需要注意:主机目录和容器目录需要绝对路径,如果不指定绝对路径启动会报错,错误提示为invalid mount path,mount path must be abstract。如果主机目录不存在则会自动创建,创建的目录权限为docker容器中对应的目录权限。如果容器目录不存在则会自动创建,创建的权限为宿主机对应的目录权限,用户和用户组为1000(貌似默认的)如果主机目录和容器目录都存在,则主机目录的内容会覆盖掉容器目录的内容,但目录名不会改变。容器内部无法删除挂载的数据卷(目录),但主机可以删除挂载的数据卷,删除后容器内的目录依旧存在但内容为空。删除失败Device or resource busy容器停止和删除都不影响主机数据卷,即使容器已经删除了,主机数据卷内容任然存在。挂载数据卷的操作是在容器执行启动成功后的命令之前完成的,也就是在Dockerfile的CMD命令之前。所以你可能会在挂载数据卷后进容器查看数据卷内容发现与进容器之前看到的主机数据卷不一致,其实数据卷已经被容器启动后做了数据数据更改了,当你退出容器查看主机数据卷已经同步。上述就是小编为大家分享的docker中怎么挂载数据卷了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注开发云行业资讯频道。

相关推荐: windows系统的桌面显示不正常如何解决

windows系统的桌面上放置的很多常用软件,但是最近小编的电脑遇到一个问题,桌面的内容变扁而且显示不正常,这样看着感觉很别扭。如果小伙伴也遇到了这样的问题,可以看下面的教程如何解决: 方法一:调分辨率,在桌面任意空白位置右键→属性→设置→屏幕分辨率→调整分辨…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/26 10:22
Next 07/26 10:23

相关推荐