重学容器24: nerdctl启动containerd容器存储挂载volume
文章目录
【注意】最后更新于 July 23, 2021,文中内容可能已过时,请谨慎使用。
上一节学习了nerdctl在启动containerd时挂载外部存储时支持bind mounts
, volumes
两种模式,当前0.11.0版本的nerdctl还不支持tmpfs
。
本节针对volumes
的使用做一个总结和复习。先来看一下volume在使用上的一些特点:
- volume可以在容器启动时自动创建和挂载,自动创建的volume是匿名volume
- 也可以在启动容器前手动创建命名的volume,在使用nerdctl启动容器时命令参数显示挂载
- volume的生命周期独立于容器,容器被删除时volume会被保留,使用
nerdctl volume
单独管理volume - volume可以在多个不同容器之间共享或重用
手动创建命名的volume
可以通过nerdctl volume create
来创建volume,再挂载使用:
|
|
启动容器时自动创建匿名的volume
也可以在启动容器时自动创建匿名的volume:
|
|
Dockerfile中添加volume
在Dockerfile的语法中可以通过VOLUME
指令创建一个或多个volume,当使用构建出来的镜像启动容器时将自动创建和挂载为匿名的volume。
Dockerfile的语法如下:
|
|
对于VOLUME /data
,要求镜像中必须先存在/data目录,在启动容器时将自动创建匿名volume并挂载到该目录,而且这个目录里原来的文件都将全部被复制到宿主机中volume对应的文件夹中。
一般在Dockerfile创建volume的常用模式如下:
|
|
另外对于匿名volume,在删除容器时可以显示通过-v
选项自动删除容器关联的匿名volume。
|
|
参考
文章作者 青蛙小白
上次更新 2021-07-23