Heim  >  Artikel  >  Java  >  Docker-Schnellstart, Kernkonzepte und allgemeine Anweisungen

Docker-Schnellstart, Kernkonzepte und allgemeine Anweisungen

Java后端技术全栈
Java后端技术全栈nach vorne
2023-08-23 14:56:34772Durchsuche


Ein Freund stellte am Wochenende Fragen zu Docker. Heute werde ich Ihnen einen schnellen Einstieg in Docker, Kernkonzepte und allgemeine Anweisungen geben. 1. Grundlegende Konzepte und Operationen 1.1. Installation 1.1. Für die Installation von Docker unter CentOS ist die Distributionsversion 7 und höher erforderlich. Es wird empfohlen, den Overlay2-Speichertreiber zu verwenden.

# 卸载已有 docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 添加安装源
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装最新版
sudo yum install docker-ce docker-ce-cli containerd.io

# 启动
sudo yum install docker-ce docker-ce-cli containerd.io

Docker-Schnellstart, Kernkonzepte und allgemeine Anweisungen

1.2, Bild

ist im Wesentlichen eine schreibgeschützte Kombination aus Dateien und Ordnern, die alle grundlegenden Dateien und Konfigurationsinformationen enthält, die beim Ausführen des Containers erforderlich sind. Bedienung: 1. Ziehen Sie den Bild-Docker-Pull Zum Beispiel: Docker Pull Nginx2, benennen Sie das Bild-Docker-Tag um Zum Beispiel: docker tag nginx:latest mynginx:latest

3. Sehen Sie sich das Image docker rmi anZum Beispiel: docker rmi mynginx5 oder Docker-Commit Zum Beispiel: docker commit nginx mynginx:lastest Docker-Build ist relativ komplex, wird aber häufiger verwendet

1.3. Container

Ein Image kann mehrere Container erstellen. Das Wesentliche beim Ausführen eines Containers ist die Erstellung einer Lese-/Schreibkopie des Dateisystems.

Lebenszyklus:

Erstellt: anfänglicher Konstruktionszustand

Laufend: Ausführungszustand

Gestoppt: Angehaltener Zustand

Pause: Angehaltener Zustand

Gelöscht: Gelöschter Zustand

Vorgänge: 1. Erstellen und starten Sie den Container

Erstellen : docker create -it --name=mynginx mynginx

Start: docker start mynginx

Erstellen und starten: docker run -it --name=mynginx mynginx

2 Beenden Sie den Container Docker stoppt mynginx

3. Betreten Sie den Container Docker Attach Mynginx docker exec -it mynginx sh (mehr verwendet)

4. Löschen Sie den Container Docker RM Mynginx Löschen Sie den laufenden Container: docker rm -f mynginx

5 Exportieren Sie den Container Docker-Export mynginx > mynginx.tar

6 Docker Import mynginx.tar mynginx:import

1.4, Warehouse

speichert und verteilt Docker-Images; der Registrierungsserver ist der eigentliche Server, auf dem das Warehouse gespeichert ist, und kann viele Warehouses enthalten, und jedes Warehouse kann mehrere Bilder enthalten.

Öffentlicher Lager-Docker-Hub https://hub.docker.com/ Login: Docker-Login Schieben Sie das Bild in das Lager: Docker Push

Verwenden Sie die Verteilung, um ein privates Lager zu erstellen https://github.com/distribution/distribution

docker run -d -p 5000:5000 --name Registry Registry:2.7 docker push localhost:5000/mynginx

1.5, Volume

kann das standardmäßige gemeinsame Dateisystem umgehen und direkt auf dem Host in Form von Dateien oder Verzeichnissen existieren. Es löst die Probleme der Datenpersistenz und des Datenaustauschs zwischen Containern. Vorgang: 1. Erstellen: Docker-Volume erstellen Volume-Name

2. -v gibt den Pfad an, der beibehalten werden soll. Docker erstellt das Volume automatisch für uns und bindet es an den Container. docker run -d --name=nginx-volume -v /usr/share/nginx/html nginx

3. Ansicht: Docker-Volume ls

4. - Die Der Parameter -mount gibt den Namen des Volumes an docker run -d --name=nginx --mount source=volume-name,target=/usr/share/nginx/html nginx

6. Datenträger löschen: docker volume rm volume-name

7 : Docker run --mount source=lv,target=/tmp/log --name=v-producer -it test docker run -it --name Consumer --volumes-from v-producer test

8. Datenaustausch zwischen Volumes und Hosts: docker run -v /data:/usr/local/data -it test

1.6 . Wichtige Komponenten

1. Docker

    docker, ist der Docker-Client, sendet Anfragen
  • dockerd, der Servereingang, ist für den Empfang von Anfragen und die Rückgabe von Ergebnissen verantwortlich
  • docker-init, Container Prozess Nr. 1, verwaltet Untercontainer
  • Docker-Proxy, leitet den Netzwerkverkehr des Hosts an den Container
  • 2, Containerd

    Container, ist für das Lebenszyklusmanagement des Containers verantwortlich, B. Container-Start, -Stopp usw während der Entwicklung und beim Debuggen
  • 3
    • Runc erstellt und zerstört über die Systemschnittstelle Container alle Container auf dem Host. cAdvisor ist eine allgemeine Open-Source-Container-Überwachungslösung von Google. Installationsreferenz:
    • https://www.jianshu.com/p/91f9d9ec374f
Überwachung anzeigen: http://localhost:8080 http://localhost:8080/containers/ http: // localhost: 8080/docker/

1.8, Sicherheitsfragen nicht genug

2. Implementierungsprinzip

2.1. Namespace
  • Namespace ist eine Funktion des Linux-Kernels, die im selben Hostsystem implementiert werden kann, um ID zu verarbeiten, Hostname, Benutzer, Dateiname, Netzwerk- und Interprozesskommunikation und andere Ressourcenisolation.
  • Docker verwendet sechs Typen: Mount-Namespace, Mount-Point-Isolation PID-Namespace, Prozessisolation UTS-Namespace, Hostnamen-Isolierung IPC-Namespace, Isolation der Kommunikation zwischen Prozessen Benutzernamespace, Benutzer- und Benutzergruppenisolation Net Namespace, Netzwerkgerät, IP-Adresse und Portisolation
  • 2.2, Cgroups

begrenzen die Ressourcen eines Prozesses oder einer Prozessgruppe, wie CPU, Speicher, Festplatten-E/A usw. Funktionen von cgroups:
  • Ressourcennutzung begrenzen
  • Verschiedene Gruppen können unterschiedliche Nutzungsprioritäten für CPU, Festplatten-E/A und andere Ressourcen haben.
  • Berechnen Sie die Ressourcennutzung der Kontrollgruppe
  • 2.3. Union File System

Union File System, ein mehrschichtiges, leichtes Dateisystem, das den Inhalt mehrerer Verzeichnisse gemeinsam in demselben Verzeichnis bereitstellen kann, um ein einziges Dateisystem zu bilden. Es gibt drei am häufigsten verwendete Union-Dateisysteme in Docker: AUFS, Devicemapper und OverlayFS.

AUFS ist das früheste und ausgereifteste

  • Devicemapper, ein vom Linux-Kernel bereitgestelltes Framework, ist ein technisches Framework zum Zuordnen von Blockgeräten. Zu den Kernkonzepten gehören zugeordnetes Gerät, Zielgerät und Zuordnungstabelle, einschließlich Loop-LVM-Modus und Direkt-LVM-Modus (für den Produktionsgebrauch);
  • Overlay2, das Update ist stabiler und für die Linux-Kernel- und Docker-Version geeignet Die Anforderungen sind relativ hoch.
  • 2.4. Netzwerkimplementierung

CNM (Container Network Model) ist ein von Docker veröffentlichter Container-Netzwerkstandard. Libnetwork ist Open Source, in Golang geschrieben, folgt vollständig der CNM-Netzwerkspezifikation und ist die offizielle Implementierung von CNM. Libnetwork enthält vier Hauptnetzwerkmodelle:

  • Null-Netzwerkmodus, es wird kein Containernetzwerk bereitgestellt.
  • Bridge-Bridge-Modus, Container können miteinander kommunizieren Modus, Container Stellen Sie das gleiche Netzwerk über LocalHost-Interviews ein
  • 3, andere verwandte

3.1, Containeranordnung Docker: Docker Compose, Docker Swarm, Kubernetes .

Docker Compose wurde von Docker erworben. Es handelt sich im Wesentlichen um ein Python-Skript, das mehrere Container auf einem einzelnen Knoten verwalten und orchestrieren kann.

Docker Swarm ist ein von Docker offiziell eingeführtes Container-Cluster-Management-Tool. Es ist einfach zu bedienen, unterstützt die bidirektionale TLS-Authentifizierung und verwendet das Raft-Protokoll, um die Verteilung zu erreichen.

    Kubernetes, Google stützt sich auf das technische Design und die Implementierung des internen Borg-Systems. Es ist leistungsstark und zielt darauf ab, den Betrieb von Hunderten Millionen Containern zu unterstützen ist hoch. 3.2. Die Rolle von DevOps Qualität. Zuverlässigkeit.
  • Installieren Sie die Entwicklungsumgebung schnell über Docker, integrieren Sie Dockerfile schnell, um Images zu erstellen, ziehen Sie das Image und führen Sie den Container aus, um die Bereitstellung abzuschließen, und kombinieren Sie es mit Container-Orchestrierungstools, um eine blau-grüne Veröffentlichung zu erreichen.
  • Fördert die Entwicklung von DevOps.
  • Ermöglicht eine schnelle kontinuierliche Integration und Bereitstellung.

Das obige ist der detaillierte Inhalt vonDocker-Schnellstart, Kernkonzepte und allgemeine Anweisungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Java后端技术全栈. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen