Implementierung des Imports und Exports von Docker-Images

Implementierung des Imports und Exports von Docker-Images

Docker-Nutzung von Gitlab

Gitlab Docker

Startbefehl

docker run -d -p 3000:80 twang2218/gitlab-ce-zh:9.0.3

docker run -d -p 8080:80 gitlab/gitlab-ce:latest

Containeränderungen am Image festschreiben

# Geben Sie den Container ein [root@#localhost docker]# docker run -ti ubuntu:14.04 /bin/bash
root@812a997f614a:/#id 
uid=0(Wurzel) gid=0(Wurzel) Gruppen=0(Wurzel)

# Einige Änderungen vorgenommen root@812a997f614a:/# echo update>update.txt
root@812a997f614a:/# beenden
Ausfahrt

[root@#localhost docker]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
812a997f614a ubuntu:14.04 "/bin/bash" vor 7 Minuten Beendet (0) vor 22 Sekunden zealous_euler
69304dea46c7 gitlab/gitlab-ce:latest "/assets/wrapper" Vor etwa einer Stunde Beendet (127) Vor 44 Minuten competent_minsky
67ba866e21b0 gitlab/gitlab-ce:latest "/assets/wrapper" vor 2 Stunden Beendet (137) Vor etwa einer Stunde hungry_hoover
2a3d08a0a2ff twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" vor 2 Stunden Beendet (137) Vor etwa einer Stunde nervous_wozniak
6db49540be99 twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" vor 2 Stunden Beendet (255) vor 2 Stunden 22/tcp, 443/tcp, 0.0.0.0:3000->80/tcp romantic_elion
b08a6d6ed716 gitlab/gitlab-ce:latest "/assets/wrapper" vor 2 Stunden Beendet (255) vor 2 Stunden 22/tcp, 443/tcp, 0.0.0.0:8080->80/tcp competent_brahmagupta
33fd0b1ebd27 gitlab/gitlab-ce:latest "/assets/wrapper" vor 2 Stunden Beendet (127) vor 2 Stunden loving_brattain
6f53620a930c twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" vor 3 Stunden Beendet (127) vor 2 Stunden brave_galileo
88df78f77c4e ubuntu:14.04 "sleep 360" vor 4 Tagen Beendet (137) vor 4 Tagen Testkopie
81a879a36bd3 wordpress "docker-entrypoint..." vor 4 Tagen Beendet (0) vor 4 Tagen wordpress
a57a3cc492b7 mysql "docker-entrypoint..." vor 4 Tagen Beendet (0) vor 4 Tagen mysqlwp

# Speichern Sie das geänderte Image als neues [root@#localhost docker]# docker commit 812a997f614a ubuntu:update
sha256:317f102584605694da424bc96764559a1ccfda13943353f4cbdfd89c96515e6b

[root@#localhost docker]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
Ubuntu-Update 317f10258460 vor 5 Sekunden 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab vor 44 Stunden 1,19 GB
gitlab/gitlab-ce latest 5eff2e44957c vor 2 Tagen 1,11 GB
mysql latest 9546ca122d3a vor 8 Tagen 407 MB
wordpress latest 4ad41adc2794 vor 2 Wochen 401 MB
Ubuntu 14.04 7c09e61e9035 vor 5 Wochen 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f vor 2 Jahren 499 MB

# Zeigen Sie die Unterschiede zwischen dem geänderten Image und dem Originalimage an [root@#localhost docker]# docker diff 812a997f614a
C /var
C /var/cache
C /var/cache/apt
D /var/cache/apt/srcpkgcache.bin
D /var/cache/apt/pkgcache.bin
C /var/lib
C /var/lib/apt
C /var/lib/apt/lists
A /var/lib/apt/lists/lock
Eine /var/lib/apt/lists/partial
A /var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_trusty-updates_InRelease
Eine /update.txt
C /root
Eine /root/.bash_history
[root@#localhost Docker]#

Importieren und Exportieren von Bildern

Export und Import

[root@#localhost docker]# docker run -ti ubuntu:update /bin/bash
root@cbe3cb7799ed:/# ls
bin boot dev usw home lib lib64 media mnt opt ​​proc root run sbin srv sys tmp update.txt usr var

[root@#localhost Docker]# 
[root@#localhost docker]# docker ps -a
CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS NAMEN
cbe3cb7799ed ubuntu:update "/bin/bash" vor 47 Sekunden Beendet (1) vor 6 Sekunden adoring_kare
812a997f614a ubuntu:14.04 "/bin/bash" vor 16 Minuten Beendet (0) vor 8 Minuten zealous_euler
69304dea46c7 gitlab/gitlab-ce:latest "/assets/wrapper" vor 2 Stunden Beendet (127) vor 53 Minuten competent_minsky
67ba866e21b0 gitlab/gitlab-ce:latest "/assets/wrapper" vor 2 Stunden Beendet (137) vor 2 Stunden hungry_hoover
2a3d08a0a2ff twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" vor 2 Stunden Beendet (137) vor 2 Stunden nervous_wozniak
6db49540be99 twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" vor 2 Stunden Beendet (255) vor 2 Stunden 22/tcp, 443/tcp, 0.0.0.0:3000->80/tcp romantic_elion
b08a6d6ed716 gitlab/gitlab-ce:latest "/assets/wrapper" vor 2 Stunden Beendet (255) vor 2 Stunden 22/tcp, 443/tcp, 0.0.0.0:8080->80/tcp competent_brahmagupta
33fd0b1ebd27 gitlab/gitlab-ce:latest "/assets/wrapper" vor 3 Stunden Beendet (127) vor 2 Stunden loving_brattain
6f53620a930c twang2218/gitlab-ce-zh:9.0.3 "/assets/wrapper" vor 3 Stunden Beendet (127) vor 2 Stunden brave_galileo
88df78f77c4e ubuntu:14.04 "sleep 360" vor 4 Tagen Beendet (137) vor 4 Tagen Testkopie
81a879a36bd3 wordpress "docker-entrypoint..." vor 4 Tagen Beendet (0) vor 4 Tagen wordpress
a57a3cc492b7 mysql "docker-entrypoint..." vor 4 Tagen Beendet (0) vor 4 Tagen mysqlwp

# Exportieren Sie das Image in eine Datei [root@#localhost docker]# docker export cbe3cb7799ed > update.tar


# Erstellen Sie ein neues statisches Image basierend auf der exportierten Datei [root@#localhost /]# docker import - update < update.tar 
sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc
[root@#localhost /]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
Update letztes fd00d520a43e vor 13 Sekunden 165 MB
Ubuntu-Update 317f10258460 vor 11 Minuten 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab vor 44 Stunden 1,19 GB
gitlab/gitlab-ce latest 5eff2e44957c vor 2 Tagen 1,11 GB
mysql latest 9546ca122d3a vor 8 Tagen 407 MB
wordpress latest 4ad41adc2794 vor 2 Wochen 401 MB
Ubuntu 14.04 7c09e61e9035 vor 5 Wochen 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f vor 2 Jahren 499 MB
[root@#localhost /]#

Speichern und Laden

(wie beim Sichern und Wiederherstellen mit Spiegelung)

# update ist ein vorhandenes Image [root@#localhost /]# docker save -o update1.tar update
[root@#localhost /]# ls
bin boot dev usw home lib lib64 media mnt opt ​​proc root run sbin srv sys tmp update1.tar update.tar usr var
[root@#localhost /]# du -sh update1.tar 
166M update1.tar

# Löschen Sie das Update-Image [root@#localhost /]# docker rmi update
Ohne Tag: update:latest
Gelöscht: sha256:fd00d520a43eb5dc6cca8717fe0ca04cfdc53b02cad2fb5b50d877b8e6d6c3bc
Gelöscht: sha256:14cc8cd7b783152682835346e5fe90860a9feeb684866688692285319d4e97ad

[root@#localhost /]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
Ubuntu-Update 317f10258460 vor 16 Minuten 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab vor 44 Stunden 1,19 GB
gitlab/gitlab-ce latest 5eff2e44957c vor 2 Tagen 1,11 GB
mysql latest 9546ca122d3a vor 8 Tagen 407 MB
wordpress latest 4ad41adc2794 vor 2 Wochen 401 MB
Ubuntu 14.04 7c09e61e9035 vor 5 Wochen 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f vor 2 Jahren 499 MB

#Importieren Sie das Image [root@#localhost /]# docker load < update1.tar 
14cc8cd7b783: Ebene wird geladen [========================================================>] 173,8 MB/173,8 MB
Geladenes Bild: update:latest
[root@#localhost /]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
Update letztes fd00d520a43e vor 6 Minuten 165 MB
Ubuntu-Update 317f10258460 vor 17 Minuten 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab vor 44 Stunden 1,19 GB
gitlab/gitlab-ce latest 5eff2e44957c vor 2 Tagen 1,11 GB
mysql latest 9546ca122d3a vor 8 Tagen 407 MB
wordpress latest 4ad41adc2794 vor 2 Wochen 401 MB
Ubuntu 14.04 7c09e61e9035 vor 5 Wochen 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f vor 2 Jahren 499 MB
[root@#localhost /]# 

Docker-Datei

[root@#localhost ~]# mkdir docker_file
[root@#localhost ~]# cd docker_file/

[root@#localhost docker_file]# vi Docker-Datei 

[root@#localhost docker_file]# cat Dockerfile 
VON Ubuntu:14.04

EINSTIEGSPUNKT ["/bin/echo"]

[root@#localhost docker_file]# Docker-Build.
Senden des Build-Kontexts an den Docker-Daemon 2.048 kB
Schritt 1/2: VON ubuntu:14.04
 ---> 7c09e61e9035
Schritt 2/2: ENTRYPOINT /bin/echo
 ---> Wird ausgeführt in d53f31b93355
 ---> 26dd06d2e5a5
Zwischenbehälter entfernen d53f31b93355
Erfolgreich erstellt 26dd06d2e5a5

#Führen Sie das Image aus [root@#localhost docker_file]# docker run 26dd06d2e5a5

#Fügen Sie einen Parameter hinzu [root@#localhost docker_file]# docker run 26dd06d2e5a5 Hallo Welt
Hallo Welt
[root@#localhost docker_file]# vi Docker-Datei 
[root@#localhost docker_file]# docker run 26dd06d2e5a5 Hallo Welt
Hallo Welt


#
[root@#localhost docker_file]# cat Dockerfile 
VON Ubuntu:14.04

#ENTRYPOINT ["/bin/echo","Hallo Welt!"]
CMD ["/bin/echo","Hallo Welt!"]

[root@#localhost docker_file]# Docker-Build.
[root@#localhost docker_file]# docker run 12458a717ced
Hallo Welt!


[root@#localhost docker_file]# docker run 12458a717ced /bin/date 
Sa, 8. April 2017, 12:08:14 UTC


Beim Erstellen ein Tag hinzufügen

[root@#localhost docker_file]# docker build -t yang:01 .
Senden des Build-Kontexts an den Docker-Daemon 3.584 kB
Schritt 1/2: VON ubuntu:14.04
 ---> 7c09e61e9035
Schritt 2/2: CMD /bin/echo Hallo Welt!
 ---> Wird ausgeführt in 94e510f085d7
 ---> 6b33c8a6a32f
Zwischenbehälter entfernen 94e510f085d7
Erfolgreich erstellt 6b33c8a6a32f
[root@#localhost docker_file]# Docker-Bilder
REPOSITORY TAG BILD ID ERSTELLT GRÖSSE
yang 01 6b33c8a6a32f vor 5 Sekunden 188 MB
Update letztes fd00d520a43e vor 29 Minuten 165 MB
Ubuntu-Update 317f10258460 vor 41 Minuten 188 MB
twang2218/gitlab-ce-zh 9.0.3 36172b5fefab vor 44 Stunden 1,19 GB
gitlab/gitlab-ce latest 5eff2e44957c vor 2 Tagen 1,11 GB
mysql latest 9546ca122d3a vor 8 Tagen 407 MB
wordpress latest 4ad41adc2794 vor 2 Wochen 401 MB
Ubuntu 14.04 7c09e61e9035 vor 5 Wochen 188 MB
daocloud.io/library/nginx 1.7.1 e3e043d3ed2f vor 2 Jahren 499 MB
[root@#localhost Docker-Datei]# 

Erstellen Sie ein Beispiel

Packen Sie die Flask-Anwendung in das Image

Schreiben Sie das Python-Programm hellp.py

#!/usr/bin/env python

aus Flasche importieren Flasche
App = Flask(__name__)

@app.route('/hallo')
def hallo_welt():
  gib „Hallo Welt!“ zurück

wenn __name__ == '__main__':
  app.run(Host='0.0.0.0', Port=5000)

Schreiben einer Docker-Datei

VON Ubuntu:14.04

Führen Sie apt-get update aus.
Führen Sie apt-get install -y python aus.
Führen Sie den Befehl apt-get install -y python-pip aus.
Führen Sie apt-get clean all aus.

Führen Sie den Befehl „pip install flask“ aus.

ADD hello.py /tmp/hello.py

EXPOSE 5000

CMD ["python","/tmp/hallo.py"]

Dies ist das Ende dieses Artikels über die Implementierung des Importierens und Exportierens von Docker-Images. Weitere relevante Inhalte zum Importieren und Exportieren von Docker-Images finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Praxis der Import- und Exportvorgänge für Docker-Images und Container
  • Codebeispiele für den Import und Export von Docker-Images
  • Import-, Export-, Sicherungs- und Migrationsvorgänge für Docker-Images
  • Beispielanalyse zum Exportieren, Importieren und Kopieren von Docker-Images
  • So importieren und exportieren Sie Docker-Images
  • So exportieren und importieren Sie Bilder zwischen Docker
  • Einführung in den Import- und Exportprozess von Docker-Images

<<:  HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (5)

>>:  Detaillierte Erläuterung des Implementierungsprinzips der Transaktionsisolationsstufe in MySQL

Artikel empfehlen

Detaillierte Erläuterung der Mysql-Funktionsaufrufoptimierung

Inhaltsverzeichnis Funktionsaufrufoptimierung Fun...

Detaillierte Erklärung der Lösung für das Nginx-Panikproblem

In Bezug auf das Nginx-Panikproblem müssen wir zu...

Packetdrills prägnantes Benutzerhandbuch

1. Kompilierung und Installation von Packetdrill ...

Docker-Verbindung – MongoDB-Implementierungsprozess und Codebeispiele

Nachdem der Container gestartet wurde Melden Sie ...

So fügen Sie eindeutige Indizes für Felder in MySQL hinzu und löschen sie

1. PRIMARY KEY hinzufügen (Primärschlüsselindex) ...

Erläuterung regulärer Ausdrücke in JavaScript

Inhaltsverzeichnis 1. Erstellen regulärer Ausdrüc...

Verwenden Sie die vertikale Ausrichtung, um Eingabe und Bild auszurichten

Wenn Sie Eingabe und Bild in dieselbe Zeile setzen...

Lösung für die nicht wirksame Änderung des El-Popover-Stils von ElementUI

Bei der Verwendung von Element-UI gibt es eine hä...

Das WeChat-Applet implementiert den Serveraufbau des Benutzeranmeldemoduls

Ich habe node.js zum Erstellen des Servers gewähl...

CSS3 erzielt einen unendlichen Scroll-/Karusselleffekt der Liste

Effektvorschau Ideen Scrollen Sie durch die aktue...