Software Development

Docker: kontener, podstawowe operacje

Luty 5, 2016 0
Podziel się:

Kontener to jedno z podstawowych pojęć Dockera. Konteneryzacja pozwala na uruchomienie procesu (programu) w odizolowanym środowisku zawierającym wszystkie zależności wymagane do jego działania. W tym wpisie zostało zdefiniowanie pojęcie kontenera oraz przedstawiono podstawowe operacje jakie można wykonać na kontenerze.

Ten wpis jest częścią serii wpisów o Dockerze. Jeżeli jakieś pojęcie jest używane bez wyjaśnienia to prawdopodobnie zostało wprowadzone w jednym z wcześniejszych wpisów.

Wstęp

Kontener jest ujednoliconą kolekcją warstw składająca się z warstw tylko do odczytu pochodzących z obrazu kontenera i pojedynczej warstwy do odczytu i zapisu. Warstwa do odczytu i zapisu umożliwia działanie procesów uruchamianych w kontenerze.

Graficzna interpretacja kontenera.

Rys 1. Graficzna interpretacja kontenera.

 

Przeznaczeniem kontenera jest wykonywanie pojedynczego zadania (procesu). Kontener może znajdować się w jednym ze stanów:

  • “created” – Kontener, który został stworzony, ale jeszcze nie uruchomiony.
  • “restarting” – Kontener w trakcie ponownego uruchamiania swojego procesu.
  • “up” – Kontener wykonujący swój proces.
  • “paused” – Kontener, którego proces został wstrzymany.
  • “exited” – Kontener, który zakończył wykonywanie swojego procesu.

Tworzenie i uruchamianie

Kontener można stworzyć i uruchomić za pomocą polecenia:

docker run [nazwa lub id obrazu]

Powyższe polecenie zostało przedstawione z minimalną liczbą parametrów. W praktyce jest ono wykonywane z różnymi opcjami, które określają właściwości kontenera. Na początku warto poznać opcję --name, za pomocą której możemy nazwać kontener. Jeżeli nie podamy własnej nazwy wtedy wygeneruje ją Docker. Przyjazna nazwa będzie pomocna podczas wykonywania poleceń na kontenerze.

docker run --name="ubuntu-container" ubuntu:15:10

Kontener będzie uruchomiony tak długo jak będzie wymagało tego działające w nim polecenie. Domyślnie kontener uruchamia polecenie określone w kodzie źródłowym obrazu. W przypadku obrazu ubuntu jest to /bin/bash. Po uruchomieniu, kontener ubuntu-container wykonał polecenie bin/bash będąc przez niezauważalnie krótki czas w stanie “up”, a następnie zakończył działanie przechodząc w stan “exited”.

Kontener domyślnie uruchomi się jako proces pierwszoplanowy. Żeby uruchomić kontener w tle należy dodać opcję -d (--detach=true) do polecenia docker run.

docker run -d [id lub nazwa obrazu]

Czasami chcemy użyć kontenera tylko po to żeby jednokrotnie wykonać jego polecenie. W takiej sytuacji warto uruchomić kontener z opcją --rm=true, która spowoduje, że kontener zostanie automatycznie usunięty po zakończeniu działania.

docker run --rm=true [id lub nazwa kontenera]

Wyświetlanie

Listę wszystkich kontenerów można wyświetlić za pomocą polecenia:

docker ps -a
CONTAINER ID    IMAGE           COMMAND        CREATED         STATUS      PORTS    NAMES
64d9865cea19    ubuntu:15.10    "/bin/bash"    23 hours ago    Exited (0)           ubuntu-container

Zatrzymywanie

W celu zatrzymania kontenera należy wykonać polecenie:

docker stop [id lub nazwa kontenera]

Usuwanie

Kontener można usunąć za pomocą polecenia:

docker rm [id lub nazwa kontenera]

Docker nie posiada polecenia usuwającego wszystkie kontenery, ale można je uzyskać składając polecenie wyświetlające identyfikatory wszystkich kontenerów i polecenie usuwające kontener. Usunięcie wszystkich kontenerów może być szczególnie przydatne na początku nauki.

docker rm $(docker ps -a -q)

Spis wpisów w serii

5 / 5
Tagi: ,
Piotr Wierzgała
Autor: Piotr Wierzgała
Programista Python zainteresowany tematyką uczenia maszynowego.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz