Docker Cheatsheet

Częste parametry polecenia docker

Page content

Oto arkusz skrótów Docker
zawierający najważniejsze polecenia i koncepcje od instalacji po uruchamianie kontenerów i czyszczenie:

logo Docker

Instalacja

Na Ubuntu

sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
sudo apt install docker-ce
sudo systemctl start docker

Instalacja Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

Ogólne polecenia Docker

Wersja i informacje systemowe

docker version          # Wyświetla wersje klienta i demona Docker
docker system info      # Wyświetla dane dotyczące środowiska Docker
docker help             # Wyświetla indeks pomocy
docker <command> --help # Wyświetla informacje pomocy dla konkretnego polecenia

Logowanie i wylogowanie

docker login            # Logowanie do Docker Hub
docker logout           # Wylogowanie z Docker Hub

Zarządzanie obrazami

Lista obrazów

docker images           # Lista wszystkich obrazów
docker images -a        # Lista wszystkich obrazów, w tym obrazów pośrednich

Pobieranie obrazów

docker pull <image-name:version> # Pobieranie obrazu z Docker Hub

Budowanie obrazów

docker build -t <image-name> . # Budowanie obrazu z Dockerfile w bieżącym katalogu
docker build -f <Dockerfile-path> -t <image-name> . # Budowanie obrazu z konkretnego Dockerfile
docker build --build-arg foo=bar . # Budowanie obrazu z argumentami budowania
docker build --pull . # Pobieranie zaktualizowanych wersji obrazów odwołanych w instrukcjach FROM
docker build --quiet . # Budowanie obrazu bez emitowania danych wyjściowych

Tagowanie i przesyłanie obrazów

docker tag <local-image-name> <username>/<preferred-image-name>
docker push <username>/<preferred-image-name>

Usuwanie obrazów

docker rmi <image-name>        # Usuwanie konkretnego obrazu
docker image prune             # Usuwanie nieużywanych obrazów
docker image prune -a          # Usuwanie wszystkich nieużywanych obrazów

Usuwanie obrazów bez etykiet

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Usuwanie etykiety obrazu

docker rmi repository/image-name:tag

Zarządzanie kontenerami

Uruchamianie kontenerów

docker run -itd --name <container-name> <image-name> # Uruchamianie kontenera w trybie oddzielnym
docker run -it -p <host-port>:<docker-port> <image-name> # Uruchamianie kontenera z mapowaniem portów
docker run -it --name <container-name> <image-name> # Uruchamianie kontenera interaktywnie

Lista kontenerów

docker ps                  # Lista uruchomionych kontenerów
docker ps -a               # Lista wszystkich kontenerów
docker ps -s               # Lista uruchomionych kontenerów z użyciem CPU i pamięci

Uruchamianie, zatrzymywanie i ponowne uruchamianie kontenerów

docker start <container-name>   # Uruchamianie zatrzymanego kontenera
docker stop <container-name>    # Zatrzymywanie uruchomionego kontenera
docker restart <container-name> # Ponowne uruchamianie kontenera

Usuwanie kontenerów

docker rm <container-name>      # Usuwanie zatrzymanego kontenera
docker rm -f <container-name>   # Siłowe usuwanie kontenera
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Usuwanie wszystkich kontenerów

usuwanie wszystkich zatrzymanych kontenerów

docker container prune

Dołączanie do kontenerów

docker attach <container-name>  # Dołączanie do uruchomionego kontenera
docker exec -it <container-name> bash # Uruchamianie polecenia w uruchomionym kontenerze interaktywnie

Inspekcja kontenerów

docker inspect <container-name> # Inspekcja kontenera
docker logs <container-name>    # Wyświetlanie logów kontenera
docker port <container-name>    # Wyświetlanie mapowań portów kontenera

Zarządzanie sieciami

docker network ls            # Lista wszystkich sieci
docker network create <network-name> # Tworzenie nowej sieci
docker network rm <network-name>    # Usuwanie sieci

Zarządzanie woluminami

docker volume ls             # Lista wszystkich woluminów
docker volume create <volume-name> # Tworzenie nowego woluminu
docker volume rm <volume-name>    # Usuwanie woluminu
docker run -v <host-path>:<container-path> <image-name> # Montowanie woluminu

Docker Compose

Podstawowe polecenia

docker-compose up           # Uruchamianie usług zdefiniowanych w docker-compose.yml
docker-compose up -d        # Uruchamianie usług w trybie oddzielnym
docker-compose down         # Zatrzymywanie i usuwanie usług
docker-compose ps           # Lista uruchomionych usług
docker-compose logs         # Wyświetlanie logów usług
docker-compose start        # Uruchamianie usług
docker-compose stop         # Zatrzymywanie usług
docker-compose pause        # Wstrzymywanie usług
docker-compose unpause      # Wznowienie usług

Polecenia Dockerfile

Budowanie obrazu z Dockerfile

docker build -t <image-name> <Dockerfile-path> # Budowanie obrazu z Dockerfile

Przykładowy Dockerfile

FROM <base-image>
RUN <command>
COPY <source> <destination>
EXPOSE <port>
CMD ["<command>", "<argument>"]

Bezpieczeństwo i sekrety

Sekrety Docker

docker secret create <secret-name> <file> # Tworzenie sekretu
docker secret ls                         # Lista wszystkich sekretów
docker secret rm <secret-name>          # Usuwanie sekretu

Bezpieczeństwo Docker

  • Używaj sekretów Docker do centralnego zarządzania wrażliwymi danymi i bezpiecznego przesyłania ich do kontenerów.
  • Sekrety są szyfrowane podczas przesyłania i w stanie spoczynku w swarze Docker.

Czyszczenie

Usuwanie nieużywanych zasobów

docker system prune          # Usuwanie nieużywanych danych (obrazy, kontenery, sieci, woluminy)
docker image prune           # Usuwanie nieużywanych obrazów
docker container prune       # Usuwanie nieużywanych kontenerów
docker network prune         # Usuwanie nieużywanych sieci
docker volume prune          # Usuwanie nieużywanych woluminów

Usuwanie obrazów bez etykiet

Czasami po dużej kompilacji pojawia się obraz tak jak ten z polecenia docker images:

dużo obrazów bez etykiet

Aby usunąć te obrazy z tagami :

docker rmi $(docker images --filter “dangling=true” -q --no-trunc)

powyższe polecenie jest stare i niekompatybilne. Parametr dangling=true jest przestarzały. Użyj

docker system prune

to polecenie zapyta:

UWAGA! To usunie:
	- wszystkie zatrzymane kontenery
	- wszystkie woluminy nie używane przez co najmniej jeden kontener
	- wszystkie sieci nie używane przez co najmniej jeden kontener
	- wszystkie obrazy bez etykiet

Możesz zdecydować się na odpowiedzenie Tak na to ostrzeżenie…

Ten arkusz zawiera niezbędne polecenia i koncepcje potrzebne do zarządzania kontenerami, obrazami, sieciami, woluminami i innymi elementami Docker. Aby uzyskać głębszy wgląd, odniesienie się do szczegółowych przewodników i tutoriali dostępnych online.

Przydatne linki