Docker-fuskblad

Våra vanliga parametrar för docker-kommandon

Sidinnehåll

Här är en Docker-minneslista som täcker de viktigaste kommandona och koncepten, allt från installation till körning av containrar och städning:

docker logo

Denna guide är en del av [Utvecklarverktyg: Den kompletta guide till moderna arbetsflöden](https://www.glukhov.org/sv/developer-tools/ “Lär dig de viktigaste utvecklarverktygen med omfattande guider: Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions och Linux-pakethantering. Praktiska minneslistor och arbetsflöden för fullstack-utveckling.).

Installation

För en komplett guide till installation av Docker på Ubuntu — med jämförelse av det officiella APT-lagringsplatsen, docker.io, Snap, rootless-läge och installation av Compose-pluginet — se Installera Docker på Ubuntu.

Efter installationen, lägg till din användare i docker-gruppen om du behöver köra kommandon utan sudo:

sudo usermod -aG docker $USER
newgrp docker
docker run hello-world

Installationsguiden täcker också säkerhetsavvägningen med medlemskap i docker-gruppen och alternativ utan root-åtkomst.

Allmänna Docker-kommandon

Version och systeminformation

docker version          # Visar Docker CLI- och daemon-versioner
docker system info      # Listar information om din Docker-miljö
docker help             # Visa hjälpindeksen
docker <command> --help # Visa hjälpinformation för ett specifikt kommando

Inloggning och utloggning

docker login            # Logga in på Docker Hub
docker logout           # Logga ut från Docker Hub

Hantering av avbilder

Lista avbilder

docker images           # Lista alla avbilder
docker images -a        # Lista alla avbilder, inklusive mellanliggande avbilder

Hämta avbilder

docker pull <image-name:version> # Ladda ner en avbild från Docker Hub

Bygg avbilder

docker build -t <image-name> . # Bygg en avbild från Dockerfilen i aktuell katalog
docker build -f <Dockerfile-path> -t <image-name> . # Bygg en avbild från en specifik Dockerfil
docker build --build-arg foo=bar . # Bygg en avbild med byggargument
docker build --pull . # Hämta uppdaterade versioner av avbilder som refereras i FROM-instruktioner
docker build --quiet . # Bygg en avbild utan att producera utdata

Tagga och pusha avbilder

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

Ta bort avbilder

docker rmi <image-name>        # Ta bort en specifik avbild
docker image prune             # Ta bort oanvända avbilder
docker image prune -a          # Ta bort alla oanvända avbilder

Ta bort flytande avbilder

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

Avtagga avbild

docker rmi repository/image-name:tag

Hantering av containrar

Kör containrar

docker run -itd --name <container-name> <image-name> # Kör en containr i detached-läge
docker run -it -p <host-port>:<docker-port> <image-name> # Kör en containr med portmappning
docker run -it --name <container-name> <image-name> # Kör en containr interaktivt

Lista containrar

docker ps                  # Lista körande containrar
docker ps -a               # Lista alla containrar
docker ps -s               # Lista körande containrar med CPU- och minnesanvändning

Starta, stoppa och starta om containrar

docker start <container-name>   # Starta en stoppad containr
docker stop <container-name>    # Stoppa en körande containr
docker restart <container-name> # Starta om en containr

Ta bort containrar

docker rm <container-name>      # Ta bort en stoppad containr
docker rm -f <container-name>   # Tvinga bort en containr
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q) # Ta bort alla containrar

Ta bort alla stoppade containrar

docker container prune

Koppla till containrar

docker attach <container-name>  # Koppla till en körande containr
docker exec -it <container-name> bash # Kör ett kommando i en körande containr interaktivt

Inspektera containrar

docker inspect <container-name> # Inspektera en containr
docker logs <container-name>    # Visa loggar för en containr
docker port <container-name>    # Visa portmappningar för en containr

Nätverksadministration

docker network ls            # Lista alla nätverk
docker network create <network-name> # Skapa ett nytt nätverk
docker network rm <network-name>    # Ta bort ett nätverk

Hantering av volymer

docker volume ls             # Lista alla volymer
docker volume create <volume-name> # Skapa en ny volym
docker volume rm <volume-name>    # Ta bort en volym
docker run -v <host-path>:<container-path> <image-name> # Montera en volym

Docker Compose

För flercontainrsstackar och dagliga Compose-kommandon, se Docker Compose-minneslistan. När ett Compose-projekt ska starta vid start och överleva omstarter på en Linux-server, täcker Kör Docker Compose som en Linux-tjänst med systemd enhetsfiler och driftvanor.

Grundläggande kommandon

docker-compose up           # Starta tjänster definierade i docker-compose.yml
docker-compose up -d        # Starta tjänster i detached-läge
docker-compose down         # Stoppa och ta bort tjänster
docker-compose ps           # Lista körande tjänster
docker-compose logs         # Visa loggar för tjänster
docker-compose start        # Starta tjänster
docker-compose stop         # Stoppa tjänster
docker-compose pause        # Pausa tjänster
docker-compose unpause      # Avpausa tjänster

Dockerfil-kommandon

Bygg avbild från Dockerfil

docker build -t <image-name> <Dockerfile-path> # Bygg en avbild från en Dockerfil

Exempel på Dockerfil

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

Säkerhet och hemligheter

Docker-hemligheter

docker secret create <secret-name> <file> # Skapa en hemlighet
docker secret ls                         # Lista alla hemligheter
docker secret rm <secret-name>          # Ta bort en hemlighet

Docker-säkerhet

  • Använd Docker-hemligheter för att centralt hantera känslig data och säkert överföra den till containrar.
  • Hemligheter är krypterade under transport och i vila i en Docker-swarm.

Städning

Ta bort oanvända resurser

docker system prune          # Ta bort oanvänd data (avbilder, containrar, nätverk, volymer)
docker image prune           # Ta bort oanvända avbilder
docker container prune       # Ta bort oanvända containrar
docker network prune         # Ta bort oanvända nätverk
docker volume prune          # Ta bort oanvända volymer

Ta bort otaggade avbilder

Ibland efter en stor kompilering finns det en bild som denna från docker images-kommandot:

mycket otaggade avbilder

för att ta bort dessa avbilder med -taggar:

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

Detta ovan är gammalt och inkompatibelt. Parametern dangling=true är föråldrad. Använd istället

docker system prune

Det kommer att fråga:

VARNING! Detta kommer att ta bort:
	- alla stoppade containrar
	- alla volymer som inte används av minst en containr
	- alla nätverk som inte används av minst en containr
	- alla flytande avbilder

Du kan besluta dig för att svara Ja på denna varning…

Denna minneslista täcker de grundläggande kommandon och koncept som behövs för att hantera Docker-containrar, avbilder, nätverk, volymer och mer. För en djupare dykning, hänvisa till de detaljerade guider och tutorials som finns tillgängliga online.

Användbara länkar

Prenumerera

Få nya inlägg om system, infrastruktur och AI-ingenjörskonst.