Szukaj…


Kontenery tylko z danymi

Kontenery tylko danych są przestarzałe i są teraz uważane za anty-wzór!

W dawnych czasach, przed komendą volume Dockera i zanim możliwe było utworzenie nazwanych woluminów, Docker usunął woluminy, gdy nie było już żadnych odniesień do nich w żadnych kontenerach. Kontenery tylko danych są przestarzałe, ponieważ Docker umożliwia teraz tworzenie nazwanych woluminów, a także wiele innych narzędzi za pomocą różnych docker volume dokowanych. Z tego powodu kontenery zawierające tylko dane są obecnie uważane za anty-wzór.

Wiele zasobów w Internecie z ostatnich kilku lat wspomina o użyciu wzorca zwanego „kontenerem tylko danych”, który jest po prostu kontenerem Docker, który istnieje tylko po to, aby zachować odniesienie do ilości danych w pobliżu.

Pamiętaj, że w tym kontekście „wolumin danych” to wolumin Docker, który nie jest montowany z hosta. Aby to wyjaśnić, „wolumin danych” jest woluminem utworzonym albo za pomocą dyrektywy VOLUME Dockerfile, albo za pomocą przełącznika -v w wierszu polecenia w poleceniu docker run dokera, a konkretnie w formacie -v /path/on/container . Dlatego „kontener tylko danych” to kontener, którego jedynym celem jest podłączenie woluminu danych, który jest używany przez --volumes-from w poleceniu docker run --volumes-from . Na przykład:

docker run -d --name "mysql-data" -v "/var/lib/mysql" alpine /bin/true

Po uruchomieniu powyższej komendy tworzony jest „kontener tylko danych”. Jest to po prostu pusty pojemnik z dołączonym woluminem danych. Następnie można było użyć tego woluminu w innym kontenerze, takim jak:

docker run -d --name="mysql" --volumes-from="mysql-data" mysql

Kontener mysql ma teraz ten sam wolumin, co również mysql-data .

Ponieważ Docker udostępnia teraz podkomendę volume i nazwane woluminy, ten wzorzec jest teraz przestarzały i nie jest zalecany.

Aby rozpocząć korzystanie z podkomendy volume i nazwanych woluminów, zobacz Tworzenie nazwanego woluminu

Tworzenie woluminu danych

docker run -d --name "mysql-1" -v "/var/lib/mysql" mysql

To polecenie tworzy nowy kontener z obrazu mysql . Tworzy również nowy wolumin danych, który następnie montuje w kontenerze w /var/lib/mysql . Ten wolumin pomaga w przechowywaniu danych w nim przechowywanych poza okresem użytkowania kontenera. Oznacza to, że po usunięciu kontenera zmiany systemu plików również zostają usunięte. Jeśli baza danych przechowywała dane w kontenerze, a kontener został usunięty, wszystkie te dane również zostały usunięte. Woluminy utrzymają określoną lokalizację nawet poza nią, gdy pojemnik zostanie wyjęty.

Możliwe jest użycie tego samego woluminu w wielu kontenerach z --volumes-from wiersza poleceń:

docker run -d --name="mysql-2" --volumes-from="mysql-1" mysql

Do kontenera mysql-2 teraz podłączony wolumin danych z mysql-1 , również przy użyciu ścieżki /var/lib/mysql .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow