dar*_*rix 1 docker dockerfile docker-volume
我真的不习惯使用docker VOLUME了.我有一个普通的dockerfile:
FROM ubuntu:latest
VOLUME /foo/bar
RUN touch /foo/bar/tmp.txt
Run Code Online (Sandbox Code Playgroud)
我跑了$ docker build -f dockerfile -t test .,它成功了.在此之后,我以交互方式将shell运行到与创建的test映像的运行相关联的docker容器中.就是这样,我跑了$ docker run -it test
观察:
/foo/bar已创建但为空.
docker inspect test 安装信息:
"Volumes": {
"/foo/bar": {}
}
Run Code Online (Sandbox Code Playgroud)
它似乎根本没有安装.这项任务看起来很顺利,但我做错了吗?
编辑:我希望持久保存在此已装入的卷目录中创建的数据.
必须在RUN之后放置VOLUME指令.
如https://docs.docker.com/engine/reference/builder/#volume中所述:
注意:如果任何构建步骤在声明后更改卷中的数据,则将丢弃这些更改.
如果您想知道docker run命令创建的卷的来源:
docker inspect --format='{{json .Mounts}}' yourcontainer
Run Code Online (Sandbox Code Playgroud)
会给出这样的输出:
[{
"Name": "4c6588293d9ced49d60366845fdbf44fac20721373a50a1b10299910056b2628",
"Source": "/var/lib/docker/volumes/4c6588293d9ced49d60366845fdbf44fac20721373a50a1b10299910056b2628/_data",
"Destination": "/foo/bar",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}]
Run Code Online (Sandbox Code Playgroud)
Source包含您要查找的路径.
| 归档时间: |
|
| 查看次数: |
4380 次 |
| 最近记录: |