Wyślij zapytanie Dołącz do Sii

Przeznaczeniem kontenera jest jedno lub wielokrotne wykonanie pewnej czynności określonej przez właściciela kontenera. Działający kontener oprócz swojego podstawowego zadania może wykonywać dowolne inne polecenia. Biorąc pod uwagę ideę kontenera dodatkowe polecenia powinny wspomagać działanie podstawowego polecenie. Jeżeli kontener wykonuje czynności, które można rozseparować wtedy powinny zostać stworzone osobne kontenery, każdy z osobnym i pojedynczym przeznaczeniem. Celem tego wpisu jest przybliżenie zagadnienia wykonywania poleceń przez kontener.

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.

* Zachęcamy również do zapoznania się z odświeżonymi w grudniu 2021 i styczniu 2022 artykułami nt. Dockera, które znajdziecie pod tym wpisem.

Nadpisanie głównego polecenia kontenera

Każdy kontener posiada polecenie, które jest wykonywane podczas jego uruchomienia. Jeżeli polecenie nie zostanie podane jako parametr komendy docker run wtedy kontener przyjmie polecenie określone w swoim obrazie. Czas działania kontenera (status „up”) jest tożsamy z czasem wykonywania jego polecenia.

Polecenie obrazu ubuntu to /bin/bash dlatego po uruchomieniu jego kontenera mogliśmy odnieść wrażenie, że nic się nie stało. Żeby nadpisać polecenie obrazu należy stworzyć kontener z dodatkowym parametrem.

docker run [nazwa obrazu] [polecenie]
docker run ubuntu sleep 10

W wyniku powyższego wywołania zostanie stworzony i uruchomiony kontener obrazu ubuntu o losowej nazwie. Kontener wykona polecenie sleep 10 (odczeka 10 sekund), a następnie zostanie zatrzymany. Każde kolejne wywołanie tego polecenia spowoduje utworzenie nowego kontenera o takim samym przeznaczeniu (poleceniu). Polecenie sleep stanowi tylko prosty przykład. W praktyce kontener może wykonywać dowolnie złożone polecenie. Jedynym wymogiem jest zapewnienie kontenerowi odpowiednich zasobów, np. zależnych pakietów, innych usług, mocy obliczeniowej.

Wykonanie polecenia na działającym kontenerze

Jeżeli kontener jest uruchomiony (status „up”) możemy wykonać na nim dowolne polecenie za pomocą wywołania:

docker exec [id lub nazwa kontenera] [polecenie]

Kontener obrazu ubuntu z poleceniem sleep 10 działa tylko przez 10 sekund. Żeby komfortowo przetestować komendę docker exec powinniśmy uruchomić kontener z poleceniem, które nie niesie ze sobą ograniczeń czasowych. Stwórzmy kontener serwera bazy danych postgres. Domyślne polecenie obrazu postgres uruchamia serwer bazy danych. Czas działania takiego kontenera będzie tożsamy z czasem działania serwera bazy danych.

docker run --name="postgres-container" postgres

Za pomocą polecenia psql -U postgres -c"\list" wyświetlmy listę baz danych dostępnych w kontenerze.

docker exec postgres-container psql -U postgres -c"\list"

Powinniśmy zobaczyć domyślną listę baz danych:

   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
-----------+----------+----------+------------+------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 [...]

Stwórzmy własna bazę danych o nazwie „docker„.

docker exec postgres-container psql -U postgres -c"CREATE DATABASE docker"

Po ponownym wyświetleniu baz danych powinniśmy zobaczyć listę powiększoną o bazę „docker”

   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
-----------+----------+----------+------------+------------+-----------------------
 docker    | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
 postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 |
 [...]

* Zaktualizowane w 2021 i 2022 artykuły nt. Dockera

Spis wpisów w serii

Ocena:
Autor
Avatar
Piotr Wierzgała

Programista Python zainteresowany tematyką uczenia maszynowego.

Twój adres e-mail nie zostanie opublikowany.

Może Cię również zainteresować

Pokaż więcej postów

Bądź na bieżąco

Zapisz się do naszego newslettera i otrzymuj najświeższe informacje ze świata Sii.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Get an offer

Natalia Competency Center Director

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

APLIKUJ APLIKUJ

Join Sii

Paweł Process Owner

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?