Dockerfile: Как смонтировать каталог хоста в пути к контейнеру? - PullRequest
0 голосов
/ 05 июля 2019

Если внутри моего локального хоста есть папка журнала по адресу:

/var
  /logs
     apache.logs
     elasticsearch.logs
     etc... 

И я хочу смонтировать каталог / var / logs моего хоста впуть в контейнере Docker, например / usr / var / logs / , как мне это сделать в файле Docker?Поэтому каждый раз, когда файл журнала обновляется, он также будет доступен внутри контейнера.Спасибо

Ответы [ 3 ]

1 голос
/ 05 июля 2019

Вы не можете смонтировать volumn в Dockerfile

, потому что:

Dockerfile создаст image, image является независимымна каждой машине хост.

Image должен работать везде на одной и той же платформе for example on linux platform it can be running on fedora, centos, ubuntu, redhat...etc

Таким образом, вы просто монтируете volumn только на container.потому что container будет запущен на указанном хосте компьютера.

Надеюсь, вы понимаете это.Извините за мой плохой английский.

0 голосов
/ 05 июля 2019

Вы можете достичь этого двумя способами - https://docs.docker.com/storage/bind-mounts/

- крепление

$ docker run -d -it --name devtest --mount type=bind,source=/var/logs,target=/usr/var/logs image:tag

-v

$ docker run -d -it --name devtest -v /var/logs:/usr/var/logs image:tag
0 голосов
/ 05 июля 2019

Попробуйте -v параметр из docker run команды.

docker run -itd -v /var/logs:/usr/var/logs image-name

Это смонтирует каталог /var/logs хоста в каталог /usr/var/logs контейнера.

Надеюсь, это поможет.

Обновление:

Чтобы смонтировать каталог с source и dest в dockerfile, используйте этот хак (хотя не уверен на 100%).

RUN --mount=target=/usr/var/logs,type=bind,source=/var/logs
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...