Powrót do bloga

Jak współdzielić dane między kontenerem Docker a hostem

Jak współdzielić dane między kontenerem Docker a hostem

Wprowadzenie

Zazwyczaj kontenery Docker działają tylko przez określony czas – czas potrzebny na wykonanie polecenia. Dane dostępne wewnątrz kontenera mogą być dostępne tylko z poziomu kontenera podczas jego działania.

Wolumeny Docker mogą być używane do łatwego dostępu do plików i przechowywania ich przez dłuższy czas. Na przykład, jeśli masz serwer WWW Nginx i chcesz przechowywać logi do celów audytu, możesz użyć wolumenu Docker do przechowywania logów z kontenera na maszynie hosta.

W tym samouczku dowiesz się, jak udostępniać dane między wnętrzem kontenera Docker a maszyną hosta. 

Wymagania wstępne

Do tego samouczka wymagane są następujące elementy:

Krok 1 – Montowanie wolumenu typu Bind Mount

Możesz utworzyć katalog o nazwie logs w katalogu domowym bieżącego użytkownika i zamontować go jako bind-mount do /var/log/nginx w kontenerze Nginx za pomocą następującego polecenia:

Oto bardziej szczegółowe informacje o tym poleceniu:

  • --name=nginx nadaje nazwę kontenerowi w celu łatwego odwoływania się do niego.
  • -d argument odłącza proces i uruchamia go w tle.
  • -v hostPath:containerPath mapuje ścieżkę hosta i ścieżkę kontenera w celu zamontowania typu bind.
  • -p hostPort:containerPort argument mapuje port kontenera na port hosta.
  • nginx na końcu linii to nazwa obrazu, który powinien zostać użyty do uruchomienia kontenera.
Uwaga: Zawsze używaj / lub ~/ na początku hostPath, w przeciwnym razie argument -v uzna ścieżkę za nazwę wolumenu i nie zamontuje jej jako bind.

Krok 2 – Dostęp do danych na hoście

Teraz masz kontener Nginx uruchomiony na swoim serwerze, a port 5000 Twojego serwera mapuje się na port 80 serwera Nginx. Możesz otworzyć ten port w przeglądarce internetowej pod następującym adresem URL:

nginx homepage

W katalogu ~/logs zobaczysz pliki access.log i error.log. Możesz wyświetlić logi za pomocą polecenia cat:

Możesz również sprawdzić katalog logów ~/logs na swojej maszynie hosta i znaleźć plik logów Nginx. Co więcej, jeśli dokonasz jakichkolwiek zmian w folderze logs, zostaną one również odzwierciedlone w folderze kontenera /var/log/nginx.

Podsumowanie

W tym samouczku dowiedziałeś się, jak udostępniać dane między wnętrzem kontenera Docker a maszyną hosta. Jest to niezbędne w środowiskach programistycznych, gdzie analiza logów jest konieczna do debugowania.

Więcej zasobów dotyczących platformy Docker na naszym blogu, można znaleźć poniżej:

Miłej pracy!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.