我了解了docker(在Ubuntu 18.04 LTE(仿生)上),特别是关于管理持久性数据,我发现docker volumes。
按照那里的示例,我尝试将一些文件添加到卷中,然后从容器中列出它们:
root@srv /v/l/machines# docker volume create hello
hello
root@srv /v/l/machines# docker run -d -v hello:/world busybox ls /world
Unable to find image 'busybox:latest' locally
latest: Pulling from library/busybox
57c14dd66db0: Pull complete
Digest: sha256:7964ad52e396a6e045c39b5a44438424ac52e12e4d5a25d94895f2058cb863a0
Status: Downloaded newer image for busybox:latest
d488dd535de01209ccc4f4bbf9a269d7932868ca41c9fe538d7a95fad66cefae
该卷中没有数据,因此ls
输出为空。可以。
root@srv /v/l/machines# docker volume inspect hello
[
{
"CreatedAt": "2019-01-14T14:57:47+01:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/hello/_data",
"Name": "hello",
"Options": {},
"Scope": "local"
}
]
root@srv /v/l/machines# date > /var/lib/docker/volumes/hello/_data/a.txt
root@srv /v/l/machines# date > /var/lib/docker/volumes/hello/_data/b.txt
root@srv /v/l/machines# docker run -d -v hello:/world busybox ls /world
ced5591203511f2f9a0194431ba8fca81df8442c38be993de454cadb1b93da09
root@srv /v/l/machines# docker run -d -v hello:/world busybox ls /world
7987ce187747016e81469cb1a150aa0a85ded58521fbc03f1a0f55e2e07358f0
root@srv /v/l/machines# ls /var/lib/docker/volumes/hello/_data/
a.txt b.txt
这部分我不明白。 我在docker volume inspect
所指向的位置添加了一些文件,但是在装载该卷的Docker容器中似乎看不到它们。为什么会这样?
答案 0 :(得分:2)
您的容器以分离模式运行,这就是为什么您看不到任何输出的原因。
尝试运行docker logs <container-id>
,它应该显示您的ls
命令的结果。
或者,您可以省略-d
标志以使容器在前台运行。这在您只想尝试的情况下特别有用。