Software Development

Docker: kontener, podstawowe operacje

5 lutego, 2016 1
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.

5 - Docker: kontener, podstawowe operacje

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

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

    komentarze(1)

    avatar
    Rad
    5 lutego 2020 Odpowiedz

    Wielkie dzięki za wprowadzenie do Dockera. Czytam i działam z wypiekami :). Rewelacja

    Zostaw komentarz