Docker CLI: Essential Commands for Beginners
Docker is a powerful platform that enables developers to automate the deployment of applications inside lightweight containers. Containers encapsulate an application and its dependencies, ensuring that it runs seamlessly across different environments. While Docker provides a graphical user interface (GUI) in some instances, the command line interface (CLI) is the most efficient and preferred way to interact with Docker. In this article, we’ll dive deep into essential Docker CLI commands, providing a comprehensive guide for beginners aiming to harness the power of Docker.
Was ist Docker?
Bevor wir uns mit den CLI-Befehlen befassen, lassen Sie uns kurz überprüfen, was Docker ist. Docker ist eine Open-Source-Containerisierungsplattform, die es Entwicklern ermöglicht, Anwendungen in Containern zu verpacken. Ein Container enthält den Anwendungscode, die Laufzeitumgebung, Bibliotheken und Systemwerkzeuge, die zur Ausführung der Anwendung erforderlich sind. Diese Isolierung ermöglicht es den Entwicklern, sicher zu sein, dass ihre Anwendung unabhängig davon, wo sie ausgeführt wird, sei es auf dem Computer eines Entwicklers, einem Staging-Server oder in der Produktion, gleich funktioniert.
Docker installieren
Before you can start using Docker CLI commands, you need to install Docker on your machine. Docker provides detailed instructions for various operating systems—Windows, macOS, and Linux. The installation process typically involves downloading Docker Desktop for Windows and macOS or installing Docker Engine for Linux distributions.
Installationsschritte
Download Docker: Besuchen Sie die Docker-Website und laden Sie die passende Version für Ihr Betriebssystem herunter.
Install Docker: Follow the installation instructions specific to your OS. On Linux, you might need to configure the Docker repository and install Docker via your package manager.
Start Docker: Ensure Docker is running on your machine. On Docker Desktop, you may see an icon in your system tray indicating that Docker is active.
Test Installation: Open your terminal and run the command:
docker --versionDies sollte die installierte Version von Docker zurückgeben, wenn alles korrekt eingerichtet wurde.
Docker CLI Grundlagen
The Docker CLI allows users to interact with the Docker daemon and manage Docker containers, images, networks, and volumes. The basic syntax of any Docker command is:
docker [OPTIONS] COMMAND [ARG...]Um Docker-Befehle kennenzulernen, können Sie immer mit Folgendem beginnen:
docker helpThis command will provide you with a brief overview of available commands.
Wichtige Docker CLI-BefehleHier sind einige der wichtigsten Docker-Befehle, die Sie kennen sollten:1. `docker run`: Erstellt und startet einen neuen Container aus einem Image.2. `docker ps`: Zeigt eine Liste aller laufenden Container an.3. `docker stop`: Stoppt einen oder mehrere laufende Container.4. `docker rm`: Entfernt einen oder mehrere Container.5. `docker images`: Zeigt eine Liste aller heruntergeladenen Images an.6. `docker rmi`: Entfernt ein oder mehrere Images.7. `docker pull`: Lädt ein Image aus einer Registry herunter.8. `docker build`: Erstellt ein neues Image aus einer Dockerfile.9. `docker exec`: Führt einen Befehl in einem laufenden Container aus.10. `docker logs`: Zeigt die Logs eines Containers an.11. `docker network`: Verwaltet Docker-Netzwerke.12. `docker volume`: Verwaltet Docker-Volumes.13. `docker-compose`: Verwaltet Multi-Container-Anwendungen mit Docker Compose.Diese Befehle sind nur ein kleiner Teil der verfügbaren Docker-Befehle. Mit ihnen können Sie jedoch die meisten grundlegenden Aufgaben in Docker erledigen.
1. Docker Images
Images are the blueprints for containers. They contain everything needed to run applications, including the code, libraries, and runtime. The following commands are fundamental when working with Docker images.
a. Listing Images
Um alle Bilder auf Ihrem lokalen System aufzulisten, verwenden Sie:
docker imagesThis command displays a list of images, including their repository, tag, image ID, creation date, and size.
b. Pulling an Image
To download a Docker image from Docker Hub, use:
docker pull [IMAGE:TAG]For example:
docker pull nginx:latestThis command fetches the latest version of the Nginx image.
c. Building an Image
You can create your own Docker image using a Dockerfile. Use the following command to build an image:
docker build -t [IMAGE_NAME:TAG] [PATH_TO_DOCKERFILE]Beispiel:
docker build -t myapp:1.0 .This command builds an image named myapp mit dem Tag 1.0 mit der Dockerfile im aktuellen Verzeichnis.
d. Entfernen eines Bildes
To remove an image, use:
docker rmi [IMAGE_ID]If an image is being used by a container, you might need to remove the container first or use the -f flag to force the removal.
2. Docker-Container
Container sind Instanzen von Docker-Images, die Anwendungen ausführen. Sie können Container mit verschiedenen Docker-CLI-Befehlen erstellen, starten, stoppen und verwalten.
a. Auflistung von Containern
Um laufende Container aufzulisten, verwenden Sie:
docker psTo see all containers (including stopped ones), run:
docker ps -ab. Running a Container
To create and start a new container from an image, use:
docker run [OPTIONS] [IMAGE:TAG]Beispielsweise, um einen neuen Nginx-Container auszuführen:
docker run -d -p 80:80 nginx:latestDie -d Option führt den Container im Hintergrundmodus aus, und - maps port 80 of the container to port 80 of the host.
c. Stoppen eines Containers
Um einen laufenden Container zu stoppen, verwenden Sie:
docker stop [CONTAINER_ID]Sie können den Containernamen auch als Bezeichner verwenden.
d. Entfernen eines Containers
To remove a stopped container, use:
docker rm [CONTAINER_ID]For removing all stopped containers, you can run:
docker container prunee. Viewing Logs
To view the logs from a container, use:
docker logs [CONTAINER_ID]This is particularly useful for debugging applications running inside a container.
3. Docker Networks
Docker allows you to create and manage networks, enabling containers to communicate with each other.
a. Auflistung von Netzwerken
To see all available networks, use:
docker network lsb. Creating a Network
So erstellen Sie ein neues Netzwerk:
docker network create [NETWORK_NAME]Beispiel:
docker network create my_networkc. Verbinden eines Containers mit einem Netzwerk
So verbinden Sie einen vorhandenen Container mit einem Netzwerk:
docker network connect [NETZWERKNAME] [CONTAINER_ID]d. Trennen eines Containers von einem Netzwerk
So trennen Sie einen Container von einem Netzwerk:
docker network disconnect [NETZWERKNAME] [CONTAINER_ID]4. Docker Volumes
Volumes are used to persist data generated by and used by Docker containers. They provide a way to store data outside of containers, allowing data to remain intact even if containers are stopped or removed.
a. Auflisten von Volumes
Um alle Volumes aufzulisten, verwenden Sie:
docker volume lsb. Erstellen eines Volumes
So erstellen Sie ein neues Volume:
docker volume create [VOLUME_NAME]c. Überprüfen eines VolumesUm ein Volume zu überprüfen, verwenden Sie den Befehl `vxprint`. Dieser Befehl zeigt die Konfigurationsinformationen des Volumes an. Sie können verschiedene Optionen verwenden, um spezifische Informationen anzuzeigen. Hier sind einige Beispiele:- `vxprint -g mydg -v myvol`: Zeigt detaillierte Informationen über das Volume `myvol` in der Diskgroup `mydg` an. - `vxprint -g mydg -m`: Zeigt die Metadaten des Volumes an. - `vxprint -g mydg -s`: Zeigt die Spiegelungsinformationen des Volumes an.Diese Befehle helfen Ihnen, den Status und die Konfiguration Ihrer Volumes zu überwachen und zu verwalten.
Um detaillierte Informationen über ein Volume zu erhalten:
docker Volume anzeigen [VOLUME_NAME]d. Removing a Volume
So entfernen Sie ein Volume:
docker volume rm [VOLUME_NAME]To remove all unused volumes:
docker volume prune5. Docker Compose
Although not a single command, Docker Compose is an essential tool for managing multi-container applications. It allows you to define and run multi-container Docker applications using a single YAML file.
a. Definieren einer Compose-Datei
Erstellen Sie eine docker-compose.yml file where you define your services, networks, and volumes.
Beispiel:
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: exampleb. Starting Services
Um die in Ihrer docker-compose.yml file, run:
docker-compose upAdd the -d flag to run in detached mode.
c. Stopping Services
To stop running services, use:
docker-compose herunterfahrenDieser Befehl stoppt und entfernt die in der docker-compose.yml file.
Docker Security
While Docker simplifies application deployment, security is crucial, especially in production environments. Understanding the security implications of containerization can help you mitigate risks. Here are some best practices:
Verwenden Sie offizielle Bilder: Whenever possible, use official images from Docker Hub. These are regularly updated and maintained by trusted sources.
Beschränken Sie die Rechte des Containers: Run containers with the least privileges necessary. Use the
--BenutzerOption zur Angabe eines Benutzers und Vermeidung der Ausführung als Root.Regularly Scan ImagesNutze Werkzeuge wie Docker Bench SecurityDocker Bench Security ist ein Skript, das eine Reihe von Tests durchführt, um die Sicherheit von Docker-Containern und -Hosts zu überprüfen. Es basiert auf den Best Practices des Center for Internet Security (CIS) für Docker und hilft dabei, potenzielle Sicherheitslücken zu identifizieren.Das Skript überprüft verschiedene Aspekte der Docker-Konfiguration, einschließlich der Docker-Daemon-Konfiguration, der Container-Konfiguration, der Host-Konfiguration und der Docker-Registry-Konfiguration. Es liefert eine detaillierte Ausgabe, die angibt, welche Tests bestanden oder fehlgeschlagen sind, und gibt Empfehlungen zur Behebung von Sicherheitsproblemen.Docker Bench Security ist ein nützliches Werkzeug für Systemadministratoren und Sicherheitsexperten, um die Sicherheit ihrer Docker-Umgebungen zu gewährleisten und potenzielle Risiken zu minimieren. oder andere Scan-Tools, um nach Schwachstellen in Ihren Images zu suchen.
Ressourcennutzung steuernBegrenzen Sie die Menge an CPU und Arbeitsspeicher, die ein Container mit dem verwenden kann.
--memoryand--cpusoptions when running a container.NetzwerksicherheitIsolieren Sie Container mithilfe von Netzwerken und beschränken Sie den Zugriff auf diejenigen, die ihn benötigen.
Fazit
Das Verständnis der Docker-CLI und ihrer grundlegenden Befehle ist für jeden Entwickler, der die Leistungsfähigkeit der Containerisierung nutzen möchte, entscheidend. Die in diesem Artikel beschriebenen Befehle bieten Anfängern eine solide Grundlage, um Images, Container, Netzwerke und Volumes effektiv zu verwalten.
As you advance in your Docker journey, consider exploring more complex scenarios such as multi-container applications with Docker Compose, orchestration with Kubernetes, and continuous integration and deployment (CI/CD) pipelines that integrate Docker for automated deployments.
Durch die Beherrschung der Docker-CLI optimieren Sie Ihren Entwicklungs-Workflow, steigern die Konsistenz Ihrer Anwendungen und liefern letztlich bessere Software schneller. Viel Spaß mit Docker!
Verwandte Beiträge:
- Docker Compose meistern: Wichtige Befehle erklärt
- Common Errors Encountered When Using Docker CLI: A Guide
- Häufige Fehler beim Ausführen von Docker-Befehlen und deren LösungenBeim Ausführen von Docker-Befehlen können verschiedene Fehler auftreten. Hier sind einige der häufigsten Fehler und ihre Lösungen:1. Fehler: "Cannot connect to the Docker daemon. Is the docker daemon running on this host?" Lösung: Stellen Sie sicher, dass der Docker-Daemon auf Ihrem Host läuft. Sie können dies überprüfen, indem Sie den Befehl "docker info" ausführen. Wenn der Daemon nicht läuft, starten Sie ihn mit dem Befehl "sudo systemctl start docker" (unter Linux) oder überprüfen Sie die Docker-Desktop-Anwendung (unter Windows oder macOS).2. Fehler: "Got permission denied while trying to connect to the Docker daemon socket" Lösung: Dieser Fehler tritt auf, wenn der Benutzer, der den Docker-Befehl ausführt, nicht zur Docker-Gruppe gehört. Fügen Sie Ihren Benutzer zur Docker-Gruppe hinzu, indem Sie den Befehl "sudo usermod -aG docker $USER" ausführen und sich dann erneut anmelden.3. Fehler: "Error response from daemon: conflict: unable to remove repository reference" Lösung: Dieser Fehler tritt auf, wenn Sie versuchen, ein Image zu entfernen, das von einem laufenden Container verwendet wird. Stoppen Sie zuerst den Container mit dem Befehl "docker stop " und entfernen Sie ihn dann mit "docker rm ". Anschließend können Sie das Image mit "docker rmi " entfernen.4. Fehler: "Error response from daemon: No such container" Lösung: Dieser Fehler tritt auf, wenn Sie versuchen, auf einen Container zuzugreifen, der nicht existiert. Überprüfen Sie den Namen oder die ID des Containers und stellen Sie sicher, dass er vorhanden ist, indem Sie den Befehl "docker ps -a" ausführen.5. Fehler: "Error response from daemon: conflict: unable to delete (must be forced) - image is referenced in multiple repositories" Lösung: Dieser Fehler tritt auf, wenn das Image von mehreren Repositorys referenziert wird. Verwenden Sie den Befehl "docker rmi -f ", um das Image gewaltsam zu entfernen.6. Fehler: "Error response from daemon: pull access denied for , repository does not exist or may require 'docker login'" Lösung: Dieser Fehler tritt auf, wenn Sie versuchen, ein Image aus einem privaten Repository zu pullen, ohne sich anzumelden. Melden Sie sich mit dem Befehl "docker login" bei der entsprechenden Registry an und versuchen Sie dann erneut, das Image zu pullen.7. Fehler: "Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" Lösung: Dieser Fehler tritt auf, wenn die Verbindung zum Docker-Registry aufgrund eines Timeout-Problems fehlschlägt. Überprüfen Sie Ihre Internetverbindung und versuchen Sie es erneut. Wenn das Problem weiterhin besteht, können Sie versuchen, den Docker-Daemon neu zu starten oder Ihre DNS-Einstellungen zu überprüfen.8. Fehler: "Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting \\\"/host/path\\\" to rootfs \\\"/var/lib/docker/overlay2/.../merged\\\" at \\\"/mnt\\\" caused \\\"not a directory\\\"\"": unknown" Lösung: Dieser Fehler tritt auf, wenn Sie versuchen, ein Volume zu mounten, das kein Verzeichnis ist. Stellen Sie sicher, dass der angegebene Pfad ein gültiges Verzeichnis ist und dass der Docker-Daemon über die erforderlichen Berechtigungen zum Zugriff auf dieses Verzeichnis verfügt.Diese Lösungen sollten Ihnen helfen, die häufigsten Fehler beim Ausführen von Docker-Befehlen zu beheben. Wenn Sie auf andere Fehler stoßen, überprüfen Sie die Docker-Dokumentation oder suchen Sie in der Docker-Community nach weiteren Lösungen.
- Wesentliche Docker-Sicherheitsbest Practices für sichere Bereitstellungen
