Docker для самых маленьких
Spisu treści:
- Docker Run Command
- Uruchom kontener na pierwszym planie
- Uruchom kontener w trybie odłączonym
- Wyjmij pojemnik po wyjściu
- Ustaw nazwę kontenera
- Publikowanie portów kontenerów
- Udostępnianie danych (woluminy montażowe)
- Uruchom kontener interaktywnie
- Wniosek
Docker to platforma, która umożliwia tworzenie, testowanie i wdrażanie aplikacji jako przenośnych, samowystarczalnych kontenerów, które działają praktycznie w dowolnym miejscu.
Polecenie Uruchom
docker run
tworzy kontener z danego obrazu i uruchamia kontener za pomocą danej komendy. Jest to jedno z pierwszych poleceń, które powinieneś poznać, kiedy zaczynasz pracę z Dockerem., użyjemy oficjalnego obrazu Nginx, aby pokazać różne sposoby uruchamiania kontenera Docker.
Docker Run Command
Polecenie
docker run
ma następującą postać:
docker run IMAGE
Nazwa obrazu, z którego należy utworzyć kontener, jest jedynym wymaganym argumentem dla polecenia
docker run
. Jeśli obraz nie jest obecny w systemie lokalnym, jest pobierany z rejestru.
Jeśli nie określono żadnego polecenia, polecenie określone w instrukcjach
CMD
lub
ENTRYPOINT
jest wykonywane podczas uruchamiania kontenera.
Począwszy od wersji 1.13, interfejs Docker został zrestrukturyzowany, a wszystkie polecenia zostały pogrupowane w ramach obiektu, z którym wchodzą w interakcje.
Ponieważ polecenie
run
współdziała z kontenerami, teraz jest
docker container
. Składnia nowego polecenia jest następująca:
docker container run IMAGE
Stara składnia sprzed 1.13 jest nadal obsługiwana. Pod maską polecenie
docker run
jest aliasem do
docker container run
. Użytkownicy są zachęcani do korzystania z nowej składni poleceń.
Lista wszystkich opcji
docker container run
znajduje się na stronie dokumentacji dokera.
Uruchom kontener na pierwszym planie
Domyślnie, gdy żadna opcja nie jest podana w poleceniu
docker run
, proces rootowania jest uruchamiany na pierwszym planie. Oznacza to, że standardowe wejście, wyjście i błąd z procesu rootowania są dołączone do sesji terminala.
docker container run nginx
Dane wyjściowe procesu nginx zostaną wyświetlone na twoim terminalu. Ponieważ nie ma połączeń z serwerem WWW, terminal jest pusty.
Aby zatrzymać kontener, zakończ działający proces Nginx, naciskając
CTRL+C
Uruchom kontener w trybie odłączonym
Aby utrzymać działanie kontenera po wyjściu z sesji terminala, uruchom go w trybie odłączonym. Jest to podobne do uruchamiania procesu Linux w tle.
Użyj opcji
-d
, aby uruchomić odłączony kontener:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Odłączony kontener zatrzyma się po zakończeniu procesu rootowania.
Możesz wyświetlić działające kontenery za pomocą komendy
docker container ls
.
Aby podłączyć terminal do odłączonego procesu root kontenera, użyj polecenia
docker container attach
.
Wyjmij pojemnik po wyjściu
Domyślnie po wyjściu kontenera jego system plików pozostaje w systemie hosta.
Opcje
--rm
docker run
na usunięcie kontenera po jego automatycznym wyjściu:
docker container run --rm nginx
Obraz Nginx może nie być najlepszym przykładem czyszczenia systemu plików kontenera po zamknięciu kontenera. Ta opcja jest zwykle używana w przypadku kontenerów pierwszego planu, które wykonują krótkoterminowe zadania, takie jak testy lub kopie zapasowe bazy danych.
Ustaw nazwę kontenera
W Dockerze każdy kontener jest identyfikowany przez
UUID
i nazwę. Domyślnie, jeśli nie jest jawnie ustawiony, nazwa kontenera jest generowana automatycznie przez demona Docker.
Użyj opcji
--name
, aby przypisać niestandardową nazwę do kontenera:
docker container run -d --name my_nginx nginx
Nazwa kontenera musi być unikalna. Jeśli spróbujesz uruchomić inny kontener o tej samej nazwie, pojawi się błąd podobny do tego:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Uruchom
docker container ls -a
aby wyświetlić listę wszystkich kontenerów i zobaczyć ich nazwy:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
Znaczące nazwy są przydatne w odniesieniu do kontenera w sieci Docker lub podczas uruchamiania poleceń CLI dokera.
Publikowanie portów kontenerów
Domyślnie, jeśli żadne porty nie są publikowane, proces uruchomiony w kontenerze jest dostępny tylko z wnętrza kontenera.
Porty publikowania oznaczają mapowanie portów kontenerów na porty komputera hosta, dzięki czemu porty są dostępne dla usług poza Docker.
Aby opublikować port, użyj opcji
-p
w następujący sposób:
-p host_ip:host_port:container_port/protocol
- Jeśli nie
host_ip
, domyślnie jest to0.0.0.0
Jeśli nie określonoprotocol
, domyślnie jest to TCP. Aby opublikować wiele portów, użyj wielu opcji-p
.
Aby odwzorować port TCP 80 (nginx) w kontenerze na port 8080 w interfejsie hosta localhost, uruchom:
docker container run --name web_server -d -p 8080:80 nginx
Możesz sprawdzić, czy port został opublikowany, otwierając
http://localhost:8080
w przeglądarce lub uruchamiając następujące polecenie
curl
na hoście Docker:
curl -I
Dane wyjściowe będą wyglądać mniej więcej tak:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Udostępnianie danych (woluminy montażowe)
Po zatrzymaniu kontenera wszystkie dane generowane przez kontener są usuwane. Woluminy dokowania są preferowanym sposobem utrwalania danych i udostępniania ich w wielu kontenerach.
Aby tworzyć woluminy i zarządzać nimi, użyj opcji
-p
w następujący sposób:
-v host_src:container_dest:options
-
host_src
może być bezwzględną ścieżką do pliku lub katalogu na hoście lub nazwanym woluminie. Test_danych jest bezwzględną ścieżką do pliku lub katalogu w kontenerze. Opcjami mogą byćrw
(odczyt-zapis) iro
(tylko do odczytu)). Jeśli nie podano żadnej opcji, domyślnie jest torw
.
Aby wyjaśnić, jak to działa, utwórzmy katalog na hoście i umieść w nim plik
index.html
:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Następnie zamontuj katalog
public_html
w
/usr/share/nginx/html
w kontenerze:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
Zamiast określać bezwzględną ścieżkę do
public_html
, używamy komendy
$(pwd)
, która drukuje bieżący katalog roboczy.
Teraz, jeśli wpiszesz
http://localhost:8080
w przeglądarce, powinieneś zobaczyć zawartość pliku
index.html
. Możesz także użyć
curl
:
curl
Uruchom kontener interaktywnie
W przypadku interaktywnych procesów, takich jak
bash
, użyj opcji
-i
i
-t
aby uruchomić kontener.
Opcja
-it
mówi Dockerowi, aby trzymał standardowe wejście podłączone do terminala i przydzielił pseudo-tty:
docker container run -it nginx /bin/bash
Powłoka Bash kontenera zostanie dołączona do terminala, a wiersz poleceń zmieni się:
root@1da70f1937f5:/#
Teraz możesz wchodzić w interakcje z powłoką kontenera i uruchamiać w niej dowolne polecenie.
W tym przykładzie podaliśmy polecenie (
/bin/bash
) jako argument do polecenia
docker run
dokera, które zostało wykonane zamiast polecenia określonego w pliku Dockerfile.
Wniosek
Docker to standard pakowania i wdrażania aplikacji oraz niezbędny element CI / CD, automatyzacji i DevOps.
Polecenie uruchamiania kontenera dokowanego służy do tworzenia i uruchamiania kontenerów Docker.
dokerPolecenie echa w systemie Linux z przykładami
Polecenie echo jest jednym z najbardziej podstawowych i często używanych poleceń w systemie Linux. Argumenty przekazywane do echa są wypisywane na standardowe wyjście.
Polecenie Curl w systemie Linux z przykładami
Curl to narzędzie wiersza polecenia do przesyłania danych z lub na serwer zaprojektowane do pracy bez interakcji użytkownika. W tym samouczku pokażemy, jak korzystać z narzędzia do zwijania, poprzez praktyczne przykłady i szczegółowe objaśnienia najczęściej używanych opcji zwijania.
Polecenie cięcia systemu Linux z przykładami
Wytnij to narzędzie wiersza polecenia, które umożliwia wycinanie części wierszy z określonych plików lub danych potokowych i drukowanie wyniku na standardowe wyjście. W tym samouczku pokażemy, jak korzystać z polecenia cięcia systemu Linux poprzez praktyczne przykłady i szczegółowe objaśnienia najczęściej używanych opcji cięcia.