So erstellen Sie ein Tomcat-Image basierend auf Dockerfile

So erstellen Sie ein Tomcat-Image basierend auf Dockerfile

Dockerfile ist eine Datei, die zum Erstellen eines Docker-Images verwendet wird! Befehlsparameter-Skript!

Schritte zum Erstellen:

  • Schreiben Sie ein Dockerfile
  • Docker Build erstellt einen Spiegel
  • docker run führt das Image aus
  • Docker Push veröffentlicht Bilder (DockerHub, Alibaba Cloud Image Repository)
# Nehmen Sie Contes als Beispiel, um die Docker-Datei von Contes auf Dockerhub anzuzeigen

VON Grund auf
HINZUFÜGEN centos-7-x86_64-docker.tar.xz /

ETIKETT \
  org.label-schema.schema-version="1.0" \
  org.label-schema.name="CentOS-Basisimage" \
  org.label-schema.vendor="CentOS" \
  org.label-schema.license="GPLv2" \
  org.label-schema.build-date="20200809" \
  org.opencontainers.image.title="CentOS-Basisimage" \
  org.opencontainers.image.vendor="CentOS" \
  org.opencontainers.image.licenses="GPL-2.0-only" \
  org.opencontainers.image.created="2020-08-09 00:00:00+01:00"

CMD ["/bin/bash"]

DockerFile-Build-Prozess

Grundlagen:

  • Jedes reservierte Schlüsselwort (Befehl) muss groß geschrieben werden.
  • Die Ausführungsreihenfolge ist von oben nach unten
  • Kennzeichnet Kommentare
  • Jeder Befehl erstellt und übermittelt eine neue Bildebene.

Dockerfile ist entwicklungsorientiert. Wenn wir in Zukunft Projekte veröffentlichen und Bilder erstellen möchten, müssen wir eine Dockerfile-Datei schreiben. Diese Datei ist sehr einfach!

Docker-Images werden zunehmend zum Standard für die Bereitstellung in Unternehmen!

DockerFile: erstellt das Image, definiert alle Schritte und den Quellcode;

DockerImages: Ein Image, das durch Erstellen einer Docker-Datei generiert wird. Dieses Image ist das Produkt, das wir schließlich veröffentlichen und ausführen!

Docker-Container: Ein Container ist ein Image, das ausgeführt wird, um Dienste bereitzustellen!

DockerFile-Anweisungen

FROM # Basisimage MAINTAINER # Wer hat das Image geschrieben? Name + E-Mail RUN # Befehle, die beim Erstellen des Images ausgeführt werden sollen ADD # Schritte zB: Tomcat-Image---》Fügen Sie das komprimierte Paket von Tomcat ein! Inhalt hinzufügenWORKDIR # Das Arbeitsverzeichnis des ImagesVOLUME # Der Speicherort des gemounteten VerzeichnissesEXPOST # Port-Konfiguration offenlegenCMD # Geben Sie den Befehl an, der beim Start dieses Containers ausgeführt werden soll. Nur der letzte wird wirksam und kann ersetzt werdenENTRYPOINT # Geben Sie den Befehl an, der beim Start dieses Containers ausgeführt werden soll. Sie können Befehle anhängenONBUILD # Beim Erstellen eines geerbten DockerFile wird die ONBUILD-Anweisung ausgeführt, die die Anweisung auslöstCOPY # Ähnlich wie ADD kopieren wir unsere Dateien in das ImageENV # Legen Sie beim Erstellen Umgebungsvariablen fest

Feldtest

99 % der Images im Docker Hub basieren auf dem FROM Scratch-Basisimage und werden dann mit der Software und Konfiguration konfiguriert, die wir zum Erstellen benötigen.

Erstellen Sie Ihre eigenen Centos

# 1. Schreiben Sie die DockerFile-Datei VON centos
# Autoreninformationen MAINTAINER yinxiaodong<[email protected]>
# Konfigurieren Sie die Umgebungsvariable ENV MYPATH /user/local
# Geben Sie das Arbeitsverzeichnis des Bildes an WORKDIR $MYPATH 
 
Führen Sie den Befehl yum install -y vim aus.
Führen Sie den Befehl yum install -y net-tools aus.
# Port 80 freigeben EXPOSE 80
 
CMD echo $MYPATH
CMD echo "---------Ende--------"
CMD /bin/bash


# 2. Erstellen Sie ein Image über Dateien# Befehl docker build -f dockerfile Dateipfad -t Imagename: Versionsnummer.
[root@localhost Dockerfile]# Docker Build -f mydockerfile-centos -t mycentos:0.1.
Senden des Build-Kontexts an den Docker-Daemon 2.048 kB
Schritt 1/9: VON centos
 ---> 0d120b6ccaa8
Schritt 2/9: MAINTAINER yinxiaodong<[email protected]>
 ---> Wird ausgeführt in f79b12ffb083
Zwischenbehälter entfernen f79b12ffb083
 ---> 8ee53d3f7a65
Schritt 3/9: ENV MYPATH /user/local
 ---> Wird ausgeführt in 659a2c96d5f7
Zwischenbehälter entfernen 659a2c96d5f7
 ---> 59ab131ef44c
Schritt 4/9: WORKDIR $MYPATH
 ---> Wird ausgeführt in 0b4b8f9c65bb
Zwischenbehälter entfernen 0b4b8f9c65bb
 ---> 408b06671488
Schritt 5/9: RUN yum install -y net-tools
 ---> Wird ausgeführt in 151f81148a87
CentOS-8 - AppStream 118 kB/s | 5,8 MB 00:50  
CentOS-8 - Basis 218 kB/s | 2,2 MB 00:10  
CentOS-8 - Extras 1,8 kB/s | 7,3 kB 00:04  
Abhängigkeiten aufgelöst.
================================================================================
 Paket Architektur Version Repository Größe
================================================================================
Installieren:
 net-tools x86_64 2.0-0.51.20160912git.el8 BaseOS 323 k

Zusammenfassung der Transaktion
================================================================================
1 Paket installieren

Gesamte Downloadgröße: 323 k
Installierte Größe: 1,0 M
Pakete herunterladen:
net-tools-2.0-0.51.20160912git.el8.x86_64.rpm 219 kB/s | 323 kB 00:01  
--------------------------------------------------------------------------------
Gesamt 66 kB/s | 323 kB 00:04   
Warnung: /var/cache/dnf/BaseOS-f6a80ba95cf937f2/packages/net-tools-2.0-0.51.20160912git.el8.x86_64.rpm: Header V3 RSA/SHA256-Signatur, Schlüssel-ID 8483c65d: NOKEY
CentOS-8 - Basis 162 kB/s | 1,6 kB 00:00  
GPG-Schlüssel 0x8483C65D importieren:
 Benutzer-ID: „CentOS (Offizieller Signaturschlüssel von CentOS) <[email protected]>“
 Fingerabdruck: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 Von: /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Schlüssel erfolgreich importiert
Ausführen einer Transaktionsprüfung
Die Transaktionsprüfung war erfolgreich.
Ausführen eines Transaktionstests
Transaktionstest erfolgreich.
Transaktion wird ausgeführt
 Zubereitung: 1/1 
 Installieren: net-tools-2.0-0.51.20160912git.el8.x86_64 1/1 
 Ausführen des Skriptlets: net-tools-2.0-0.51.20160912git.el8.x86_64 1/1 
 Überprüfung: net-tools-2.0-0.51.20160912git.el8.x86_64 1/1 

Eingerichtet:
 net-tools-2.0-0.51.20160912git.el8.x86_64                   

Vollständig!
Zwischenbehälter ausbauen 151f81148a87
 ---> c0a0546c9b2a
Schritt 6/9: EXPOSE 80
 ---> Wird ausgeführt in 42000936515d
Zwischenbehälter ausbauen 42000936515d
 ---> fe68114ecf3f
Schritt 7/9: CMD echo $MYPATH
 ---> Wird ausgeführt in c393fc53a354
Zwischenbehälter entfernen c393fc53a354
 ---> a6924276bf90
Schritt 8/9: CMD echo "---------end--------"
 ---> Wird ausgeführt in 5994de56f0a1
Zwischenbehälter ausbauen 5994de56f0a1
 ---> a8ba0ebb3770
Schritt 9/9: CMD /bin/bash
 ---> Wird ausgeführt in d1fa2d436363
Zwischenbehälter entfernen d1fa2d436363
 ---> 41bb76be4884
Erfolgreich erstellt 41bb76be4884
Erfolgreich getaggt mit mycentos:0.1
[root@localhost Dockerfile]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
mycentos 0.1 41bb76be4884 vor 7 Sekunden 246 MB
centos 1.0 d840628c30a9 vor 6 Stunden 215 MB
centos latest 0d120b6ccaa8 vor 2 Tagen 215MB

# Starten Sie mycentos und verwenden Sie den Befehl ifconfig, um die IP-Informationen anzuzeigen [root@localhost dockerfile]# docker run -it mycentos:0.1
[root@494c2bc72263 lokal]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 172.17.0.3 Netzmaske 255.255.0.0 Broadcast 172.17.255.255
    Ether 02:42:ac:11:00:03 txqueuelen 0 (Ethernet)
    RX-Pakete 6 Bytes 516 (516,0 B)
    RX-Fehler 0 verloren 0 Überläufe 0 Frame 0
    TX-Pakete 0 Bytes 0 (0,0 B)
    TX-Fehler 0 verloren 0 Überläufe 0 Träger 0 Kollisionen 0

lo: Flags = 73 <UP, LOOPBACK, RUNNING> mtu 65536
    inet 127.0.0.1 Netzmaske 255.0.0.0
    loop txqueuelen 1000 (Lokaler Loopback)
    RX-Pakete 0 Bytes 0 (0,0 B)
    RX-Fehler 0 verloren 0 Überläufe 0 Frame 0
    TX-Pakete 0 Bytes 0 (0,0 B)
    TX-Fehler 0 verloren 0 Überläufe 0 Träger 0 Kollisionen 0
# Überprüfen Sie das Verzeichnis /user/local, das genau das Verzeichnis ist, das wir im Dockerfile [root@494c2bc72263 local]# pwd angegeben haben.
/Benutzer/lokal

Anzeigen des Buildverlaufs eines Images

# Befehl Docker Verlauf Image-ID

[root@localhost ~]# Docker-Verlauf 41bb76be4884
BILD ERSTELLT ERSTELLT VON GRÖSSE KOMMENTAR
41bb76be4884 vor 16 Minuten /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin… 0B         
a8ba0ebb3770 vor 16 Minuten /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B         
a6924276bf90 vor 16 Minuten /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B         
fe68114ecf3f vor 16 Minuten /bin/sh -c #(nop) EXPOSE 80 0B         
c0a0546c9b2a vor 16 Minuten /bin/sh -c yum install -y net-tools 31,3 MB       
408b06671488 vor 17 Minuten /bin/sh -c #(nop) WORKDIR /user/local 0B         
59ab131ef44c vor 17 Minuten /bin/sh -c #(nop) ENV MYPATH=/user/local 0B         
8ee53d3f7a65 vor 17 Minuten /bin/sh -c #(nop) MAINTAINER yinxiaodong<m1… 0B         
0d120b6ccaa8 vor 2 Tagen /bin/sh -c #(nop) CMD ["/bin/bash"] 0B         
<fehlt> vor 2 Tagen /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B         
<fehlt> vor 2 Tagen /bin/sh -c #(nop) ADD file:538afc0c5c964ce0d… 215 MB

Wenn wir ein Bild erhalten, können wir untersuchen, wie es erstellt wird ----> Docker-Verlauf Bild-ID

Der Unterschied zwischen CMD und ENTRYPOINT

CMD #Geben Sie den Befehl an, der ausgeführt werden soll, wenn dieser Container gestartet wird. Nur der letzte Befehl wird wirksam und kann ersetzt werden. ENTRYPOINT #Geben Sie den Befehl an, der ausgeführt werden soll, wenn dieser Container gestartet wird. Sie können Befehle anhängen. #Test CMD
# DockerFile-Datei schreiben [root@localhost dockerfile]# cat dockerfile-cmd-test 
VON centos
CMD ["ls","-a"]
# Image basierend auf DockerFile erstellen [root@localhost dockerfile]# docker build -f dockerfile-cmd-test -t testcmd:0.1 .
Senden des Build-Kontexts an den Docker-Daemon 3.072kB
Schritt 1/2: VON centos
 ---> 0d120b6ccaa8
Schritt 2/2: CMD ["ls","-a"]
 ---> Wird ausgeführt in b3f8ba72222b
Zwischenbehälter entfernen b3f8ba72222b
 ---> 561e47f88730
Erfolgreich erstellt 561e47f88730
Erfolgreich markiert testcmd:0.1 # Erfolgreich erstellt# Sehen Sie sich das Image an [root@localhost dockerfile]# Docker-Images
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
testcmd 0.1 561e47f88730 vor 6 Sekunden 215 MB
centos latest 0d120b6ccaa8 vor 2 Tagen 215MB
# Starten Sie das Image und stellen Sie sicher, dass der Befehl ls -a wirksam ist [root@localhost dockerfile]# docker run -it testcmd:0.1
.dockerenv dev home lib64 media opt root sbin sys usr
.. bin etc lib verloren+gefunden mnt proc laufen srv tmp var

# Fügen Sie dem Startbefehl ein -l hinzu. Wir erwarten ls -a -l, aber es wird ein Fehler gemeldet. Hier wird ls -a durch -l ersetzt. Der letzte Befehl ist -l, daher wird ein Fehler gemeldet.
[root@localhost Docker-Datei]# docker run -it 561e47f88730 -l
Docker: Fehlerantwort vom Daemon: Erstellen der OCI-Laufzeit fehlgeschlagen: container_linux.go:349: Starten des Containerprozesses verursachte „exec: \"-l\": ausführbare Datei nicht in $PATH gefunden": unbekannt.
# Ersetzen Sie den Startbefehl durch docker run -it testcmd:0.1 ls -al und drucken Sie erfolgreich ausführliche Informationen aus;
[root@localhost Docker-Datei]# docker run -it testcmd:0.1 ls -al
gesamt 0
drwxr-xr-x. 1 root root 6. Aug. 13 08:20.
drwxr-xr-x. 1 root root 6. Aug. 13 08:20 ..
-rwxr-xr-x. 1 root root 0 13. August 08:20 .dockerenv
lrwxrwxrwx. 1 root root 7 11. Mai 2019 bin -> usr/bin
drwxr-xr-x. 5 root root 360 13. Aug. 08:20 dev
drwxr-xr-x. 1 root root 66 13. Aug. 08:20 usw.
drwxr-xr-x. 2 root root 6 11. Mai 2019 Startseite
lrwxrwxrwx. 1 root root 7 11. Mai 2019 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 11. Mai 2019 lib64 -> usr/lib64
drwx------. 2 root root 6 Aug 9 21:40 verloren+gefunden
drwxr-xr-x. 2 root root 6 11. Mai 2019 Medien
drwxr-xr-x. 2 root root 6 11. Mai 2019 mnt
drwxr-xr-x. 2 root root 6 11. Mai 2019 opt
dr-xr-xr-x. 123 root root 0 13. August 08:20 proc
dr-xr-x---. 2 Wurzel Wurzel 162 9. Aug. 21:40 Wurzel
drwxr-xr-x. 11 root root 163 9. Aug. 21:40 ausführen
lrwxrwxrwx. 1 root root 8 11. Mai 2019 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 11. Mai 2019 srv
dr-xr-xr-x. 13 root root 0 11. August 09:58 sys
drwxrwxrwt. 7 root root 145 9. Aug. 21:40 tmp
drwxr-xr-x. 12 root root 144 9. Aug. 21:40 usr
drwxr-xr-x. 20 root root 262 9. Aug. 21:40 var



# Test 2: Jetzt ersetzen wir CMD in DockerFile durch ENTRYPOINT, erstellen es neu und führen es aus, um das Ergebnis anzuzeigen [root@localhost dockerfile]# cat dockerfile-cmd-test 
VON centos
EINSTIEGSPUNKT ["ls","-a"]
# Erstellen Sie das Image neu [root@localhost Dockerfile]# docker build -f dockerfile-cmd-test -t testcmd:0.2 .
Senden des Build-Kontexts an den Docker-Daemon 3.072kB
Schritt 1/2: VON centos
 ---> 0d120b6ccaa8
Schritt 2/2: ENTRYPOINT ["ls","-a"]
 ---> Wird ausgeführt in c634ca09fabe
Zwischenbehälter entfernen c634ca09fabe
 ---> 52d295395f08
Erfolgreich erstellt 52d295395f08
Erfolgreich markiert mit testcmd:0.2
# Sehen Sie sich das Bild an [root@localhost dockerfile]# docker images
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
testcmd 0.2 52d295395f08 vor 7 Sekunden 215 MB
testcmd 0.1 561e47f88730 vor 12 Minuten 215 MB
centos latest 0d120b6ccaa8 vor 2 Tagen 215MB
# Führen Sie testcmd:0.2 image aus, fügen Sie -l an und stellen Sie fest, dass detaillierte Informationen gedruckt werden	
[root@localhost Docker-Datei]# docker run -it testcmd:0.2 -l
gesamt 0
drwxr-xr-x. 1 root root 6. Aug. 13 08:17 .
drwxr-xr-x. 1 root root 6. Aug. 13 08:17 ..
-rwxr-xr-x. 1 root root 0 13. August 08:17 .dockerenv
lrwxrwxrwx. 1 root root 7 11. Mai 2019 bin -> usr/bin
drwxr-xr-x. 5 root root 360 13. Aug. 08:17 dev
drwxr-xr-x. 1 root root 66 13. Aug. 08:17 usw.
drwxr-xr-x. 2 root root 6 11. Mai 2019 Startseite
lrwxrwxrwx. 1 root root 7 11. Mai 2019 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 11. Mai 2019 lib64 -> usr/lib64
drwx------. 2 root root 6 Aug 9 21:40 verloren+gefunden
drwxr-xr-x. 2 root root 6 11. Mai 2019 Medien
drwxr-xr-x. 2 root root 6 11. Mai 2019 mnt
drwxr-xr-x. 2 root root 6 11. Mai 2019 opt
dr-xr-xr-x. 121 root root 0 13. August 08:17 proc
dr-xr-x---. 2 Wurzel Wurzel 162 9. Aug. 21:40 Wurzel
drwxr-xr-x. 11 root root 163 9. Aug. 21:40 ausführen
lrwxrwxrwx. 1 root root 8 11. Mai 2019 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 11. Mai 2019 srv
dr-xr-xr-x. 13 root root 0 11. August 09:58 sys
drwxrwxrwt. 7 root root 145 9. Aug. 21:40 tmp
drwxr-xr-x. 12 root root 144 9. Aug. 21:40 usr
drwxr-xr-x. 20 root root 262 9. Aug. 21:40 var

Viele Befehle in DockerFile sind sehr ähnlich. Wir müssen ihre Unterschiede verstehen. Der beste Weg, sie zu lernen, besteht darin, sie zu vergleichen und zu testen, um die Ergebnisse zu sehen!

Tatsächlicher Kampf: Tomcat-Bild

1. Bereiten Sie die Image-Datei vor Tomcat-Komprimiertes Paket JDK-Komprimiertes Paket

[root@localhost tomcat]# ls
apache-tomcat-8.5.43.tar.gz Dockerfile jdk-8u211-linux-x64.tar.gz read.txt

2. Schreiben Sie die Dockerfile-Datei, offiziell Dockerfile genannt. Der Build findet diese Datei automatisch, eine -f-Angabe ist nicht erforderlich!

# Importieren Sie die grundlegenden Elemente von centos
# Autoreninformationen MAINTAINER yinxiaodoong<[email protected]>

# kopiere die Datei read.txt in das Verzeichnis /usr/local/read.txt des Containers COPY read.txt /usr/local/read.txt

# JDK Tomcat hinzufügen ---> Automatisch dekomprimieren ADD jdk-8u211-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.43.tar.gz /usr/local/

# Vim-Befehl installieren RUN yum install -y vim


#MYPATH konfigurieren
ENV MYPATH /usr/local/
#Geben Sie den Standardpfad zum Aufrufen des Containers /user/local/ an. 
ARBEITSVERZEICHNIS $MYPATH


# Konfigurieren Sie die JDK-Umgebungsvariable ENV JAVA_HOME /usr/local/jdk1.8.0_211
ENV-KLASSENSPATH $JAVA_HOME/lib/dt.jat:$JAVA_HOME/lib/tools.jar

# Konfigurieren Sie die Tomcat-Umgebungsvariable ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.43
ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.43

ENV-PFAD $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin


# Port 8080 freigeben EXPOSE 8080


# /usr/local/tomcat/webapps# 
# Starten Sie Tomcat, wenn Sie den Container starten
CMD /usr/local/apache-tomcat-8.5.43/bin/startup.sh und tail -f /usr/local/apache-tomcat-8.5.43/logs/catalina.out 

# Tomcat-Image erstellen [root@localhost tomcat]# docker build -t mytomcat 
[root@localhost tomcat]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
mytomcat latest a9707559afa1 vor 8 Sekunden 693 MB
centos latest 0d120b6ccaa8 vor 4 Tagen 215MB


[root@localhost Tomcat]# Docker run -d -p 8081:8080 --name mytomcat--01 -v /home/yinxiaodong/build/tomcat/test:/usr/local/apache-tomcat-8.5.43/webapps/test -v /home/yinxiaodong/build/tomcat/logs:/usr/local/apache-tomcat-8.5.43/logs mytomcat

Veröffentlichen Sie Ihr eigenes Bild

Veröffentlichen auf DockerHub

Adresse: https://hub.docker.com/ Registrieren Sie Ihr eigenes Konto

Stellen Sie sicher, dass sich Ihr Konto anmelden kann

Auf unserem Server einreichen

[root@localhost-Protokolle]# Docker-Login --Hilfe

Verwendung: Docker-Login [OPTIONEN] [SERVER]

Melden Sie sich bei einem Docker-Register an.
Wenn kein Server angegeben ist, wird der Standard vom Daemon definiert.

Optionen:
 -p, --password Zeichenfolge Kennwort
   --password-stdin Übernimmt das Passwort von stdin
 -u, --username string Benutzername
[root@localhost-Protokolle]# 
[root@localhost-Protokolle]# Docker-Login -u xxx -p xxx
WARNUNG! Die Verwendung von --password über die CLI ist unsicher. Verwenden Sie --password-stdin.
WARNUNG! Ihr Passwort wird unverschlüsselt in /root/.docker/config.json gespeichert.
Konfigurieren Sie einen Credential Helper, um diese Warnung zu entfernen. Siehe
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Anmeldung erfolgreich

Nach der Anmeldung können Sie das Bild übermitteln.

[root@localhost logs]# docker push xxx/mytomcat:1.0

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Befehlsanalyse zum Schreiben von Dockerfile-Dateien und Erstellen von Images
  • Implementierung zum Erstellen benutzerdefinierter Images mit Dockerfile
  • Erstellen Sie ein Docker-Image mit Dockerfile
  • Schritte zum Erstellen eines Docker-Images mit Dockerfile
  • So verwenden Sie Dockerfile zum Erstellen von Images in Docker
  • Beispiel für die Verwendung von Dockerfile zum Erstellen eines Nginx-Images
  • So verwenden Sie Dockerfile zum Erstellen von Images
  • Beispielcode zum Erstellen eines Docker-Images mit der Dockerfile-Anweisung

<<:  Lösung für das Ausgehen der Auto-Increment-ID (Primärschlüssel) von MySQL

>>:  Native js implementiert Warenkorb-Logik und -Funktionen

Artikel empfehlen

Regeln für die Verwendung gemeinsamer MySQL-Indizes

Ein gemeinsamer Index wird auch als zusammengeset...

Lernen Sie die Vue-Middleware-Pipeline in einem Artikel kennen

Beim Erstellen eines SPA müssen Sie häufig bestim...

So verwenden Sie die Lotteriekomponente des WeChat Mini-Programms

Es wird in Form von WeChat-Komponenten bereitgest...

Fähigkeiten zur Erstellung von Webformularen

Tatsächlich haben die drei obigen Tabellen alle d...

Detaillierte Erläuterung der SSHD-Dienste und Dienstverwaltungsbefehle unter Linux

sshd SSH ist die Abkürzung für Secure Shell, ein ...

Detaillierte Erklärung zur Verwendung von Bild-Tags in HTML

In HTML wird das <img>-Tag verwendet, um ei...

Installieren Sie JDK1.8 in einer Linux-Umgebung

Inhaltsverzeichnis 1. Installationsumgebung 2. In...

js, um einen coolen Feuerwerkseffekt zu erzielen

In diesem Artikel finden Sie den spezifischen Cod...

Detaillierte Erklärung des Javascript Echarts Luftqualitätskarteneffekts

Wir müssen zunächst die Luftqualitätsdaten mit de...

So richten Sie eine VSCode-Remoteverbindung zum Server-Docker-Container ein

Inhaltsverzeichnis Ziehen Sie das Bild Ausführen ...

JSON (JavaScript Object Notation) in einem Artikel verstehen

Inhaltsverzeichnis JSON wird angezeigt JSON-Struk...

Einführung in die Vue-Schaltflächenberechtigungssteuerung

Inhaltsverzeichnis 1. Schritte 1. Definieren Sie ...

Linux verwendet NetworkManager, um Ihre MAC-Adresse zufällig zu generieren

Egal, ob Sie zu Hause auf dem Sofa oder draußen i...