Почему файлы в / var / lib / docker / volume / <volume>/ _ data / не видны внутри контейнера Docker? - PullRequest
0 голосов
/ 14 января 2019

Узнав о докере (на Ubuntu 18.04 LTE (bionic)) и, в частности, об управлении постоянными данными, я обнаружил тома докера .

Следуя приведенному там примеру, я попытался добавить некоторые файлы в том, а затем перечислить их из контейнера:

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, но они, кажется, не видны в виде контейнера-докера, который монтировал этот том. Почему это так?

1 Ответ

0 голосов
/ 14 января 2019

Ваш контейнер работает в автономном режиме, поэтому вы не видите никакого вывода.

Попробуйте запустить docker logs <container-id>, и он должен показать результат вашей ls -команды.

Кроме того, вы можете опустить флаг -d, чтобы запустить контейнер на переднем плане. Это особенно полезно в тех случаях, когда вы просто хотите что-то попробовать.

Документация: запуск докера - отсоединение от переднего плана

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...