Docker prosty host udostępniania plików <> docker

Oct 25 2020

Jestem nowy w dockerze. Próbuję uruchomić docker i dodać kilka plików. Użytkownik powinien mieć możliwość zmiany tych plików i pozwolić dockerowi zrobić to magicznie. Wydajność nie jest ważna, ale prostota. Powinno być możliwe uruchomienie dockera bez dalszych argumentów, tylko „-it”. Próbowałem użyć woluminów, ale ...

docker-compose.yml:

version: '3.4'

volumes:
  data:
    name: templatevolume

services:
  template:
    image: template
    volumes:
        - data:/usr/template/:rw
    build:
        context: .
        dockerfile: ./Dockerfile

... wolumin zostanie utworzony, ale nie zostanie przypisany do Dockera. Czy jest lepszy sposób? Czy muszę przypisać wolumin do platformy Docker w ramach polecenia uruchomienia? Proszę o poradę.

Dockerfile:

FROM fedora:latest

LABEL Name=template Version=0.0.1

...

to długi plik Dockerfile, ale nie robię tutaj nic z Volumes i nic specjalnego, tylko instaluję pakiety.

Odpowiedzi

IvanAvdonin Oct 26 2020 at 00:40

Możesz użyć bind mountów. Zamontują katalog twojej maszyny fizycznej w twoim kontenerze docker.

W przypadku takiego woluminu należy podać źródło montowania, czyli ścieżkę do pliku lub katalogu na hoście demona Dockera (komputerze) i miejscu docelowym , czyli ścieżkę, w której plik lub katalog jest zamontowany w kontenerze (wewnątrz pojemnik).

- "source:target"

Nie musisz w ogóle tworzyć żadnych woluminów dockera.

Stwórzmy ukryty katalog .data w katalogu twojego pliku yml docker-compose

$ mkdir .data

Teraz możesz utworzyć plik docker-compose:

version: '3.4'

services:
  template:
    image: template
    volumes:
        - data:/usr/template/:rw
        - "./.data:/usr/template/"
    build:
        context: .
        dockerfile: ./Dockerfile

Otóż ​​to. Użytkownik może mieć dostęp do plików w .data, a docker może również pracować z całą zawartością.