Bevor wir über Docker sprechen, lassen Sie uns über herkömmliche Server sprechen
Der traditionelle unabhängige Server ist ein unabhängiges Hardwaregerät, das als hochkonfigurierter Computer verstanden werden kann, der im Computerraum platziert ist; er verfügt über unabhängigen Prozessor, Speicher, Festplatte, Bandbreite und andere Ressourcen sowie verschiedene Betriebssysteme und verschiedene Umgebungen
Nachteile dieses Servers:
1. Hohe Kosten (Zeitkosten, Kapitalkosten)
2. Die Anwendungsmigration ist mühselig. Es ist erforderlich, den Server neu zu kaufen, das Betriebssystem zu installieren, die Betriebsumgebung zu konfigurieren und die Anwendung bereitzustellen
Daher ist die Virtualisierungstechnologie entstanden, die hauptsächlich unterteilt wird in
Hardware-Virtualisierung (Hardware-Level-Virtualisierung)
Betriebssystemvirtualisierung (OS-Level-Virtualisierung)
Hardwarevirtualisierung ist eine Virtualisierungstechnologie, die auf Hardware ausgeführt wird. Der Kern der Technologie ist Hypervisor. Hypervisor ist eine Softwareschicht, die auf dem grundlegenden physischen Server ausgeführt wird und Hardwareressourcen wie CPU, Festplatte, Speicher usw. virtualisieren kann Das auf den virtualisierten Ressourcen installierte Betriebssystem ist die sogenannte virtuelle Maschine, wie VMWare, VirtualBox etc.
Betriebssystemvirtualisierung ist eine Virtualisierungstechnologie, die auf dem Betriebssystem ausgeführt wird. Sie simuliert mehrere verschiedene Prozesse, die auf einem Betriebssystem ausgeführt werden, und kapselt sie in einem geschlossenen Container, auch bekannt als Containerisierungstechnologie, wie z. B. Docker
VM: Hypervisor wird verwendet, um eine laufende Plattform für virtuelle Maschinen bereitzustellen und den Betrieb des Betriebssystems in jeder VM zu verwalten. Jede VM muss über ein eigenes Betriebssystem, Anwendungen und erforderliche abhängige Dateien usw. verfügen.
Docker-Container: Verwenden Sie die Docker-Engine für Planung und Isolierung, wodurch die Ressourcennutzung verbessert wird und mehr Containerinstanzen unter derselben Hardwarefunktionalität ausgeführt werden können; jeder Container hat seinen eigenen isolierten Benutzerbereich
Im Vergleich zu VM hat der Docker-Container als leichtgewichtige Virtualisierungsmethode folgende wesentliche Vorteile in der Anwendung:
1. Docker-Container können schnell gestartet und innerhalb von Sekunden gestoppt werden, was im Vergleich zu herkömmlichen virtuellen Maschinen erheblich verbessert wird
2. Docker-Container haben geringe Anforderungen an Systemressourcen, und Tausende von Docker-Containern können gleichzeitig auf demselben Host ausgeführt werden. Docker-Container erleichtern Benutzern das Abrufen und Aktualisieren von Anwendungsabbildern durch ähnliche Vorgänge wie bei Git
3. Der Docker-Container realisiert die automatische Erstellung und flexible Bereitstellung durch die Dockerfile-Konfigurationsdatei, wodurch die Arbeitseffizienz verbessert wird
4. Zusätzlich zum Ausführen der Anwendungen im Docker-Container verbraucht es im Grunde keine zusätzlichen Systemressourcen, wodurch die Anwendungsleistung sichergestellt und gleichzeitig der Systemaufwand minimiert wird.
Die folgende Abbildung lässt den Unterschied zwischen dem Docker-Container und der traditionellen VM-Methode intuitiv nachvollziehen:
1. Einführung in Docker
Docker ist eine Container-Engine für Open-Source-Anwendungen, die auf der Go-Sprache und Open Source in Übereinstimmung mit dem Apache2.0-Protokoll basiert
Docker ermöglicht es Entwicklern, ihre Anwendungen und Abhängigkeiten in einen leichten, tragbaren Container zu packen, der dann auf jedem gängigen Linux-Computer verteilt und auch virtualisiert werden kann.
Docker ist seit Version 17.03 in CE (Community Edition: Community Edition) und EE (Enterprise Edition: Enterprise Edition) unterteilt, wir verwenden die Community Edition.
Docker ist eine leichtgewichtige Betriebssystem-Virtualisierungslösung. Docker basiert auf der Linux Container (LXC)-Technologie, die eine standardisierte Verpackung von Software und langfristigen Umgebungen darstellt. Anwendungen sind voneinander isoliert und teilen sich ein Betriebssystem
Docker unterstützt CentOS6 und spätere Versionen
Offizielle Docker-Website: https://www.docker.com
Github-Docker-Quellcode: https://github.com/docker/docker-ce
DockerHub-Spiegellager: https://hub.docker.com/
2. Docker-Installation und Start
1. Docker-Installation
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob Docker installiert ist
yum list installed | grep docker
Einfacher Installationsbefehl ( die installierte Version von Docker ist alt, 1.13.x )
//-y 参数表示直接确认,不然会跳出一个确认框,输入Y/N
yum install docker -y
Wir können die angegebene Version von Docker wie folgt installieren
//更新docker的yum源
yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
//安装指定版本的docker:
yum install docker-ce-20.10.0 -y
Informationen zur Installation und Deinstallation finden Sie in der neuesten Dokumentation auf der offiziellen Website
Docker-Engine unter CentOS installieren | Docker-Dokumentation
Docker-Versionshinweise
Versionshinweise zur Docker-Engine | Docker-Dokumentation
Nach der Installation können Sie die folgenden drei verwenden
//注意:这里两个 横线 ‘--’
docker --version
docker version
docker -v
2. Deinstallieren
Gemäß dem Befehl view installation docker können Sie die Docker-Installationsdatei anzeigen und entfernen
Überprüfen Sie zuerst den Docker-Ausführungsstatus
systemctl status docker
Wenn es ausgeführt wird, deaktivieren Sie es
systemctl stop docker
Zeigen Sie das von yum installierte Docker-Dateipaket an
yum list installed |grep docker
Zeigen Sie Docker-bezogene RPM-Quelldateien an
rpm -qa |grep docker
Löschen Sie der Reihe nach alle installierten Docker-Pakete, wie z
yum -y remove docker-ce.x86_64
yum -y remove docker-ce-cli.x86_64
yum -y remove docker-ce-rootless-extras.x86_64
yum -y remove docker-scan-plugin.x86_64
Nach dem Löschen können Sie die Docker-RPM-Quelle erneut überprüfen
Löschen Sie die Docker-Image-Datei, die sich standardmäßig im Verzeichnis /var/lib/docker befindet, verwenden Sie pwd zum Anzeigen
Löschen Sie das obige Docker-Verzeichnis
rm -rf /var/lib/docker
3. Docker-Service-Informationen
Informationen zum Docker-System anzeigen
docker info
Hilfeinformationen anzeigen
docker
Zeigen Sie die Befehlshilfeinformationen eines Common an
docker commond --help
4. Starten und stoppen Sie den Docker-Dienst
Start-up
systemctl start docker 或者
service docker start
stoppen
systemctl stop docker 或者
service docker stop
Neustart
systemctl restart docker 或者
service docker restart
Zeigen Sie den Docker-Ausführungsstatus an
systemctl status docker 或者
service docker status
Docker-Prozess anzeigen
ps -ef | grep docker
5. Docker-Betriebsmechanismus
1. Starten Sie den Docker-Dienst
2. Image finden.Vor dem Ausführen des Containers prüft Docker zunächst, ob lokal ein entsprechendes Image vorhanden ist. Wenn lokal kein entsprechendes Image vorhanden ist, lädt Docker das Image aus dem Image Warehouse herunter
(1) Suchen Sie auf der offiziellen Docker-Hub-Website nach dem zu verwendenden Bild
Docker-Spiegellager https://registry.hub.docker.com/
Laden Sie im Allgemeinen das offizielle Bild mit dem Logo des offiziellen Bildes herunter
(2) Verwenden Sie direkt die Befehlszeile, um den Suchbefehl zu verwenden, z
docker search tomcat
STERNE: Anzahl der Sterne
OFFIZIELL: ob es offiziell ist
Spiegel herunterladen
// 下面两种方式一样的,默认下载最新版 :latest 即为最新版本
docker pull tomcat
docker pull tomcat:latest
//也可下载其他版本,如
docker pull tomcat:9.0
3. Führen Sie das Image aus, starten Sie das Image, um den entsprechenden Container zu erhalten
// -d 表示后台运行
docker run -d tomcat:9.0
docker run -d docker.io/tomcat
docker run -d 镜像ID
Überprüfen Sie, ob das Tomcat-Image den Container erfolgreich startet
ps -ef | grep tomcat
Sehen Sie sich den lokalen Spiegel an
docker images
REPOSITORY: Warenlager, z. B. docker.io/tomcat
TAG: Mirror-Tag, z. B. neueste
BILD-ID: Bild-ID
ERSTELLT: Erstellungszeit
GRÖSSE: Größe
6. Der Client greift auf den Container zu
Der Zugriff auf den Container vom Client aus erfordert eine Portzuordnung; der Docker-Container kommuniziert standardmäßig in diesem Ayong-Bridge-Modus mit dem Host und muss den IP-Port des Hosts mithilfe des Parameters -p auf den IP-Port des Containers abbilden
//映射8080 也可以,博主使用的 9090
docker run -d -p 9090:8080 tomcat:9.0
或者
docker run -d -p 9090:8080 镜像ID
7. Geben Sie den Docker-Container ein
docker exec -it 镜像ID /bin/bash
Container verlassen: exit
3. Docker-Kernkomponenten
Docker verwendet den Client-Server-Architekturmodus (C/S) und verwendet die Remote-API-Verwaltung, um Docker-Container zu erstellen
Docker-Container werden über Docker-Images erstellt
Die Beziehung zwischen Bild und Container ähnelt der Beziehung zwischen Klasse und Objekt in der objektorientierten Programmierung
Docker | objektorientierte |
Spiegelbild | Art |
Container | Objekt |
Docker umfasst drei Kernelemente
Spiegel (Bild) , Container (Container) , Lager (Repository)
1. Spiegelbild
Ein Docker-Image ist eine schreibgeschützte Vorlage, die zum Erstellen eines Docker-Containers verwendet wird. Es ist ein bisschen wie die Installations-CD des Betriebssystems
Das Docker-Image kann als spezielles Dateisystem betrachtet werden, das neben der Bereitstellung von Programmen, Bibliotheken, Ressourcen, Konfigurations- und anderen Dateien, die für die Ausführung des Containers erforderlich sind, auch einige für die Ausführung vorbereitete Konfigurationsparameter enthält (z. B. anonyme Volumes, Umgebungsvariablen usw.), Benutzer usw.). Bilder enthalten keine dynamischen Daten, und ihre Inhalte werden nach ihrer Erstellung nicht geändert.
Das Spiegelbild besteht aus vielen Schichten von Dateisystemen, die untere ist ein Boot-Dateisystem bootfs, die zweite Schicht ist ein Root-Dateisystem rootfs, das Root-Dateisystem ist normalerweise eine Art Betriebssystem, wie Centos, Ubuntu, auf Oben auf dem Root-Dateisystem und Es gibt viele Schichten von Dateisystemen, die zusammengestapelt werden, um ein Docker-Image zu bilden
Überblick über Spiegelungsbefehle
1. Laden Sie das Bild herunter
// 下面两种方式一样的,默认下载最新版 :latest 即为最新版本
docker pull tomcat
docker pull tomcat:latest
//也可下载其他版本,如
docker pull tomcat:9.0
2. Zeigen Sie das heruntergeladene Bild an
Latest ist das Image-Tag, das die neueste Image-Version angibt
docker images
或者
docker images tomcat
Holen Sie sich die Spiegelmethode
(1) Suche und Download des offiziellen Hafenlagers
(2) Build über Dockerfile
Wenn kein offizielles Image vorhanden ist, wird es über die Dockerfile-Datei erstellt
3. Führen Sie das Image aus, um den Container abzurufen
Der Zugriff auf den Container vom Client aus erfordert eine Portzuordnung; der Docker-Container kommuniziert standardmäßig in diesem Ayong-Bridge-Modus mit dem Host und muss den IP-Port des Hosts mithilfe des Parameters -p auf den IP-Port des Containers abbilden
//映射8080 也可以,博主使用的 9090
docker run -d -p 9090:8080 tomcat:9.0
或者
docker run -d -p 9090:8080 镜像ID
Sehen Sie sich den Tomcat-Prozess an
ps -ef | grep tomcat
4. Zeigen Sie den Status des Container-Images an
//查看运行中容器
docker ps
//查看所有容器
docker ps -a
CONTAINER-ID: Eine eindeutige Kennung für jeden Container, die automatisch generiert wird. ähnlich einem Primärschlüssel in einer Datenbank
IMAGE : Der Name des Images, das zum Erstellen des Containers verwendet wird
BEFEHL: Der Befehl beim Ausführen des Containers
ERSTELLT: wann der Container erstellt wurde
STATUS: Der Laufstatus des Containers, Up 8 Monate bedeutet, dass der Container seit 8 Monaten läuft
-created (erstellt)
-restarting (restarting)
-running (running)
-removing (migration)
-paused (paused)
-exited ( gestoppt )
-dead (Tod)
PORTS: Portinformationen, die vom Container geöffnet wurden.
NAME: Der Alias des Containers, der beim Ausführen des Containers mit --name angegeben werden kann, um docker run auszuführen
5. Betreten Sie den Behälter
docker exec -it 镜像ID /bin/bash
Container verlassen: exit
6. Löschen Sie das Spiegelbild
docker rmi 镜像ID
或者
docker rmi tomcat:9.0
2. Behälter
Ein Container ist eine Laufzeitinstanz eines Images. Genau wie beim Starten einer VM aus einer Vorlage für virtuelle Maschinen können Benutzer auch einen oder mehrere Container aus einem einzelnen Image starten.
Jeder Container ist voneinander isoliert, um die Plattformsicherheit zu gewährleisten. Ein Container kann als einfache Version eines Linux-Systems betrachtet werden
Docker verwendet Container zum Ausführen von Anwendungen, das Image ist schreibgeschützt und der Container erstellt beim Start eine beschreibbare Ebene als oberste Ebene
1. Es gibt zwei Möglichkeiten, den Container zu starten
(1) Erstellen Sie einen neuen Container basierend auf dem Image, um zu beginnen
docker run -d tomcat
(2) Starten Sie den Container im beendeten Zustand neu
docker start 容器id 或 容器名
或者
docker restart 容器id 或 容器名
//查看运行中容器
docker ps
//查看所有容器
docker ps -a
2. Stoppen Sie den Behälter
docker stop 容器ID 或 容器名
3. Löschen Sie den Container
Notiz:
Beim Löschen eines Containers muss sich der Container in einem gestoppten Zustand befinden, ansonsten wird ein Fehler gemeldet
docker stop 容器ID 或 容器名
docker rm 容器ID 或 容器名
4. Betreten Sie den Behälter
docker exec -it 容器ID 或 容器名 /bin/bash
5. Zeigen Sie weitere Informationen zum Container an
docker inspect 容器ID 或 容器名
6. Beenden Sie alle laufenden Container
docker stop $(docker ps -q)
7. Alle Container löschen:
docker rm $(docker ps -aq)
8. Ein Befehl zum Deaktivieren und Löschen des Containers
docker stop $(docker ps -q) & docker rm-f $(docker ps -aq)
3. Aufbewahrungsort
Repository ist ein Ort, an dem Bilder zentral gespeichert werden.Hier ist ein Konzept zu unterscheiden, das heißt, Warehouse und Warehouse-Server (Registry) sind zwei verschiedene Dinge.Wie der oben erwähnte Docker Hub ist es ein Warehouse-Server, der offiziell von Docker bereitgestellt wird , aber in der Tat Manchmal müssen wir diese beiden Konzepte nicht zu sehr unterscheiden
Docker Hub ist das offizielle zentrale Image Warehouse, das von Docker eingerichtet wurde, und es ist auch das Standard-Image-Warehouse der Docker Engine. Daher ist die Verwendung von Docker Hub die erste Wahl für Entwickler, um Images zu teilen. Die Images gängiger Service-Software sind in Docker zu finden Hub
Lagerhäuser werden in öffentliche Lagerhäuser und private Lagerhäuser unterteilt. Öffentliche Lagerhäuser beziehen sich im Allgemeinen auf Docker Hub
Wir können nach den Bildern suchen, die wir in Dockers Hub verwenden müssen
Das häufig verwendete Spiegellager in China ist das Alibaba Cloud Container Mirror Warehouse
4. Docker-Installations-MySQL-Beispiel
(1) Laden Sie das MySQL-Image herunter
docker pull mysql:latest
(2) Führen Sie das MySQL-Image aus, um den Container abzurufen und den Port zuzuordnen
docker run -d -p 3306:3306 -e MYSQL_DATABASE=mydb -e MYSQL_ROOT_PASSWORD=123456 mysql:latest
-p 3306:3306 : Ordnen Sie Port 3306 des Containerdienstes Port 3306 des Hosts zu, und der externe Host kann über die Host-IP: 3306 direkt auf den MySQL-Dienst zugreifen
MYSQL_DATABASE=mydb : Legen Sie den Datenbanknamen fest, der vom MySQL-Dienst verwendet wird
MYSQL_ROOT_PASSWORD=123456 : Legt das Passwort des Root-Benutzers des MySQL-Dienstes fest
Nach Docker Run können Sie auch Befehlen wie --restart always folgen
1. --restart=always: Beim Neustart von Docker kann der Container automatisch gestartet werden
docker run --restart spezifische Parameterwertdetails
no - den Container nicht neu starten, wenn der Container beendet wird;
on-failure – startet den Container nur neu, wenn er mit einem Nicht-Null-Status beendet wird;
–restart=on-failure:10 : Gibt maximal 10 Neustarts an
always - starten Sie den Container unabhängig vom Exit-Status neu;
2. --privileged=true: Mounten Sie das Host-Verzeichnis und melden Sie keine Berechtigungsprobleme
Wenn --restart=always nicht hinzugefügt wird, wenn Docker ausgeführt wird und der Docker-Container bereits ausgeführt wird, führen Sie den folgenden Befehl aus
# demo : 你的容器名称
docker update –-restart=always demo
(3) in den Behälter
docker exec -it 容器ID或者mysql名 /bin/bash
(4) Melden Sie sich bei MySQL an
mysql -u root -p
Kennwort ändern
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'
Berechtigung zum Hinzufügen des Remote-Benutzeranmeldungszugriffs
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
5. Docker-Installationsbeispiel für SQL Server
Suchen Sie im Docker-Hub nach „Microsoft SQL Server“.
https://registry.hub.docker.com/_/microsoft-mssql-server
(1) Laden Sie das SQL Server-Image herunter
docker pull mcr.microsoft.com/mssql/server:2019-latest
(2) Führen Sie das SQL Server-Image aus, um den Container abzurufen und den Port zuzuordnen
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=yourStrong(!)Password" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
4. Benutzerdefiniertes Docker-Image
Dockerfile ist eine Textdatei, die zum Erstellen eines Docker-Images verwendet wird, und eine Dockerfile besteht aus zeilenweisen Befehlsanweisungen
1. Grundlegende Struktur von Dockerfile
Grundlegende Bildinformationen
Betreuerinformationen
Anleitung zum Spiegelbetrieb
Anweisungen ausführen, wenn der Container gestartet wird
2. Dockerfile-Anweisung
(1) VON
Die FROM-Direktive wird verwendet, um das Basis-Image des zu erstellenden Images anzugeben. Es ist normalerweise die erste Anweisung in einer Dockerfile
Das Format ist: FROM <Bild> oder FROM <Bild>:<Tag>
(2) WARTER
Informationen zum designierten Betreuer
Das Format ist: MAINTAINER <Name>
(3) ENV
Geben Sie Umgebungsvariablen an
ENV <Schlüssel> <Wert>
(4) HINZUFÜGEN oder KOPIEREN
Kopieren Sie die Datei oder das Verzeichnis in den angegebenen Pfad im Container
HINZUFÜGEN <Quelle> <Ziel>
COPY <Quelle> <Ziel>
Der ADD-Befehl ähnelt COPY (unter den gleichen Anforderungen lautet die offizielle Empfehlung, COPY zu verwenden).
Vorteile von ADD: Wenn <Quelldatei> eine tar-komprimierte Datei ist und das Komprimierungsformat gzip, bzip2 und xz ist, wird sie automatisch nach <Zielpfad> kopiert und dekomprimiert
Nachteil von ADD: Tar-Archive können nicht ohne Dekomprimierung kopiert werden. Macht den Image-Build-Cache ungültig, was Image-Builds verlangsamen kann. Ob es verwendet werden soll oder nicht, kann danach bestimmt werden, ob eine automatische Dekomprimierung erforderlich ist
(5) BELICHTUNG
Beschreiben Sie die Portnummer, die vom Docker-Servercontainer verfügbar gemacht wird, und ordnen Sie den Port beim Starten des Containers über -p zu
Das Standardprotokoll ist tcp , wenn es sich um ein udp- Protokoll handelt, müssen Sie udp später hinzufügen , z. B. 80/udp
EXPOSE <port> [<port>/<protokoll>...]
EXPOSE 8080, was darauf hinweist, dass der Container Port 8080 zur Laufzeit bereitstellt und dass beim Starten des Containers eine Portzuordnung erforderlich ist
(6) LAUFEN
Führen Sie Befehle basierend auf dem aktuellen Image aus und erstellen Sie eine neue Image-Ebene, die normalerweise zum Aktualisieren oder Installieren von Software verwendet wird
RUN <Befehl>
(7)CMD
Geben Sie den Befehl an, der beim Starten des Containers ausgeführt werden soll. Jede Docker-Datei kann nur einen CMD-Befehl haben. Wenn Sie mehrere Befehle angeben, wird nur der letzte ausgeführt.
Wenn beim Starten des Containers ein Ausführungsbefehl angegeben wird, wird der von CMD angegebene Befehl überschrieben
Das folgende Dockerfile-Beispiel
Dockefile文件样例:
FROM XXX/jdk:8
MAINTAINER docker_user
ENV JAVA_ HОМE /usr/local/java
ADD apache -tomcat-8.0.32. tar.gz /usr/local/
RUN mv apache-tomcat-8.0.32 tomcat8
ÉXPOSE 8080
RÚN chmod u+x /usr/local/tomcat8/bin/* .sh
CMD /usr/ local/tomcat8/bin/catalina.sh start
1. Passen Sie das JDK-Image an
FROM centos:latest
MAINTAINER admin
ADD jdk-8u121-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_121
ËNV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
CMD java -version
Bild aufbauen
Verwenden Sie das Dockerfile im aktuellen Verzeichnis, um ein Image zu erstellen und das Label festzulegen
"." steht für das aktuelle Verzeichnis
Der Parameter -t legt die Bezeichnung fest
docker build -t admin_jdk1.8.0_121 .
2. Passen Sie das Tomcat-Bild an
FROM admin_jdk1.8.0_121
MAÌNTAINER admin
ADD apache-tomcat-8.5.24.tar.gz /usr/local/
ENV CATALINA_ HОME/usr/local/apache-tomcat-8.5.24
ENV PATH $PATH:$CATALINA_ HOME/Iib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.24/bin/catalina.sh run
3. Benutzerdefiniertes MySQL-Image
FROM centos:centos8
MAINTAINER admin
RUN yum install mysql-server mysqI -y
RUN /etc/init.d/mysqld start &&\
mysql -e "grant all privileges on *.* to 'root'@'%' identified by '123456' WITH
GRANT OPTION ;" &&\
mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by '123456'WITH GRANT OPTION ;" &&\
mysql -uroot -p123456 -e "show databases;"
EXPOSE 3306
CMD /ûsr/bin/mysqld_safe
3. Veröffentlichen Sie das Image im Alibaba Cloud Image Warehouse
Alibaba Cloud Mirror Warehouse
Registrieren Sie sich und melden Sie sich beim Aliyun-Konto an; Taobao- und Alipay-Konten können sich bei der Konsole oder dem Management Center anmelden, direkt nach [Container Mirroring Service] suchen, [Strength List] auswählen, Sie können ein [Mirror Warehouse] erstellen, Sie müssen zuerst einen [Namensraum] erstellen
(1) Melden Sie sich bei der Alibaba Cloud Docker-Registrierung an
docker login [email protected] registry.cn-hangzhou.aliyuncs.com
Der Benutzername zum Anmelden ist das Aliyun-Konto, und das Passwort ist das Passwort, das bei der Aktivierung des Dienstes festgelegt wurde
(2) Pushen Sie das Image in die Registry
docker tag [lmageld] registry.cn-hangzhou.aliyuncs.com/123test/1234test:[镜像版本号心]
docker push registry.cn-hangzhou.aliyuncs.com/123test/1234test:[镜像版本号]
Ersetzen Sie im Beispiel die Parameter [lmageld] und [Bildversionsnummer] entsprechend den tatsächlichen Bildinformationen
Spiegelbeschleuniger
/etc/docker/daemon.json
Fünf, Docker-Bereitstellungsanwendung
1. Stellen Sie ein SpringBoot-Projekt bereit
(1) Packen Sie das Springboot-Programm in jar oder war
(2) Laden Sie das JAR- oder WAR-Paket in ein Linux-Verzeichnis wie /root/docker hoch
(3) Definieren Sie die Dockerfile-Datei und erstellen Sie ein Projekt-Image
2. Definieren Sie das Dockerfile des JAR-Pakets
FROM admin_jdk1.8.0_121
MAINTAINER admin
ADD springboot-web-1.0.0.jar /opt
RUN chmod +X /opt/springboot-web-1.0.0.jar
CMD java -jar /opt/springboot-web-1.0.0.jar
3. Erstellen Sie das Programm-Image des JAR-Pakets
构建镜像: docker build -t springboot-web-jar .
运行容器: docker run -d 镜像ID
Nach dem Ausführen des Containers können wir das Betriebsprotokoll anzeigen
docker logs -f --tail=100 容器名称
4. Das JAR-Paketprogramm hängt von der Containerumgebung ab
运行Redis容器: docker run -p 6379:6379 -d redis
运行MySQL 容器: docker run -p 3306:3306 -e MYSQL_DATABASE=mydb -e
MYSQL_ ROOT_ _PASSWORD=123456 -d mysql:latest
Nachdem der MySQL-Container gestartet wurde, können wir über die Remote-IP + -Port und das Benutzerpasswort auf die Datenbank zugreifen. Wenn der MySQL-Container zu diesem Zeitpunkt geschlossen wird, gehen die Daten verloren.
Daher müssen Sie nach dem Ändern des Containers speichern
docker commit 容器id xxx(镜像名:tagxxx)
如:
docker commit 容器ID admin_mysql_new
Wir können es als eine festgeschriebene Transaktion in der Datenbank verstehen, und eine nicht festgeschriebene Transaktion führt dazu, dass die Daten nicht erfolgreich gespeichert werden