【发布时间】:2021-05-25 07:02:27
【问题描述】:
我在编写 Dockerfile 时正在寻找关于 VOLUME 条目的解释,并遇到了这个声明
卷是存储在
/var/lib/docker/volumes/...中的持久数据您可以在
Dockerfile中声明它,这意味着每次从映像启动容器时,都会创建卷(空),即使您没有任何-v选项。您可以在运行时声明它
docker run -v [host-dir:]container-dir。 将两者结合起来(VOLUME+docker run -v)意味着您可以将主机文件夹的内容挂载到由/var/lib/docker/volumes/...中的容器保存的卷中
docker volume create无需定义Dockerfile即可创建卷并构建映像并运行容器。用于快速允许其他容器挂载该卷。
但我很难理解这一行:
...结合两者 (
VOLUME+docker run -v) 意味着您可以将主机文件夹的内容挂载到由/var/lib/docker/volumes/...中的容器保存的卷中
例如,假设我的主机上有一个配置文件,我根据我用我写的Dockerfile 创建的映像运行容器。它会将配置文件复制到我在卷条目中声明的卷中吗?
会不会是类似(伪代码)
#dockerfile
From Ubuntu
Run apt-get update
Run apt-get install mysql
Volume . /etc/mysql/conf.d
Cmd systemcl start MySQL
当我运行它时
docker run -it -v /path/to/config/file: ubuntu_based_image
这是他们的意思吗?
【问题讨论】:
标签: docker dockerfile