Der vollständige Prozess der Docker-Image-Erstellung

Der vollständige Prozess der Docker-Image-Erstellung

Vorwort

Am Beispiel der Erstellung eines CentOS-Images beschreibt dieser Artikel den Prozess der Image-Anpassung, Verpackung und Übertragung in ein Remote-Repository. Die Schritte sind relativ einfach und Sie können schnell loslegen.

Erstellungsschritte

Erstellen Sie ein CentOS-Basisimage

Erstellen Sie ein Build-Verzeichnis und eine Docker-Datei und bearbeiten Sie imagebezogene Einstellungen in der Docker-Datei.

echo "Verzeichnis docker/build/centos_7.8.2003 im aktuellen Benutzerverzeichnis erstellen" > /dev/null
mkdir -p ~/docker/build/centos_7.8.2003

echo "Dockerfile im Verzeichnis ~/docker/build/centos_7.8.2003 erstellen" > /dev/null
Katze > ~/docker/build/centos_7.8.2003/Dockerfile << EOF 
# Geben Sie das Basisimage von centos:7.8.2003 an

# Umgebungsvariable ENV LANG=zh_CN.UTF-8 festlegen \\
    SPRACHE=zh_CN:zh \\
    LC_ALL=zh_CN.UTF-8

# Führen Sie diese Shell-Befehle nur beim Erstellen des Images aus: RUN yum update -y && \\
    yum reinstall -y glibc-common && \\
    yum install -y telnet net-tools && \\
    yum, alles reinigen && \\
    rm -rf /tmp/* rm -rf /var/cache/yum/* && \\
    localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && \\
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Ende der Laufzeit

Informationen zum Erstellen eines Images finden Sie im Anfänger-Tutorial - Docker Build. Das Format lautet docker build -t <鏡像名>:<鏡像版本號> <Dockerfile所在目錄> . Wenn die Imageversionsnummer nicht angegeben ist, ist die Standardversion latest .

# Analysieren Sie ~/docker/build/centos_7.8.2003/Dockerfile, um einen Spiegel mit dem Namen base-centos zu erstellen. docker build -t base-centos ~/docker/build/centos_7.8.2003

Nachdem der Build abgeschlossen ist, können Sie das verwendete Basis-Image und das vom Build generierte neue Image in der lokalen Image-Liste sehen.

Docker-Bilder 

Bild-20211115184348966

Erstellen und Anpassen eines Containers

Verwenden Sie das neue Image, um einen Container zu erstellen und einzugeben. Dieser Container ist ein virtuelles CentOS-System.

echo "Erstellen Sie einen Container mit dem Base-Centos-Image und nennen Sie ihn Base-Centos" > /dev/null
Docker-Ausführung \
--name Basis-Centos \
--privilegiert=true \
-dit \
Basis-Centos \
/usr/sbin/init

echo "CentOS-Container eingeben" > /dev/null
docker exec -it base-centos /bin/bash

Passen Sie das virtuelle System im Container an, beispielsweise durch die Installation häufig verwendeter Tools. Tatsächlich können diese auch in die Docker-Datei geschrieben und nach der RUN-Anweisung definiert werden.

echo "vim: Datei bearbeiten" > /dev/null
yum install -y vim

echo "lsof: praktisch zum Anzeigen von Portinformationen" > /dev/null
yum install -y lsof

echo "wget: Datei herunterladen" > /dev/null
yum install -y wget

echo "tree: Verzeichnisstruktur anzeigen" > /dev/null
yum install -y Baum

echo "python installieren" > /dev/null
yum install -y python-devel

echo "C-Kompilierungsumgebung" > /dev/null
yum install -y gcc gcc-c++
yum install -y zlib
yum install -y zlib-devel
yum install -y tcl build-essential tk gettext

Erstellen Sie ein neues Image mit einem benutzerdefinierten Container

Das Befehlsformat ist docker commit <容器名稱或者ID> <生成的鏡像名>:<鏡鏡像版本號> . Wenn die Imageversionsnummer nicht geschrieben wird, ist die Standardnummer latest . Dieser Container kann sich bei der Erstellung auch in einem gestoppten Zustand befinden.

Docker-Commit Base-Centos Centos:7.8.2003_v1

An diesem Punkt wird das Bild erstellt und Sie können das neue Bild in der Bildliste sehen.

Bild-20211115185738542

Speichern und laden Sie das Image-Tarball

Speichern Sie das Image als Tarball im Format docker save -o <文件名> <鏡像名>:<鏡像標簽> , siehe das Anfänger-Tutorial „Docker Save“.

docker save -o ~/docker/build/centos_7.8.2003/centos_7.8.2003.tar centos:7.8.2003_v1 

Bild-20211116095459570

Laden Sie das Tarball, um das Image zu generieren.

Docker-Laden --input ~/docker/build/centos_7.8.2003/centos_7.8.2003.tar

Bild-20211116115612979

Der Ladebefehl ist ungültig, wenn bereits ein doppeltes Image vorhanden ist.

Bild-20211116115743282

Übertragen Sie das Image in das Remote-Repository

Docker meldet sich beim Remote-Warehouse an. Das Format ist docker login --username=<用戶名> <倉庫地址> oder docker login -u <用戶名> -p <密碼> <倉庫地址> .

Bild-20211116150001899

docker tag <鏡像ID> <遠程鏡像倉庫地址>:<鏡像版本號> -Tag.

echo "Bildadresse und Versionsnummer markieren" > /dev/null
Docker-Tag 66b1bc81e1f2 registry.cn-shanghai.aliyuncs.com/exposure/centos:7.8.2003_v1

Bild-20211116150846001

docker push <遠程鏡像倉庫地址>:<鏡像版本號> führt einen Push zum Remote-Repository durch.

echo "In Remote-Repository übertragen" > /dev/null
Docker-Push-Registrierung.cn-shanghai.aliyuncs.com/exposure/centos:7.8.2003_v1

Referenzlinks

CSDN - Mehrere gängige CentOS7-Images für Docker

Tutorial für Anfänger - Docker-Befehle

Dies ist das Ende dieses Artikels über den vollständigen Prozess der Docker-Image-Erstellung. Weitere relevante Inhalte zur Docker-Image-Erstellung 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:
  • So erstellen Sie Ihr eigenes Image mit Dockerfile
  • Detaillierte Erklärung zur Erstellung verschiedener Docker-Images
  • Detaillierte Einführung in die Docker-Image-Erstellung
  • Docker-Image-Erstellung und Paketierung und Bereitstellung des gesamten Projekts mit einem Klick
  • So erstellen Sie Ihr eigenes Docker-Image und laden es auf Dockerhub hoch
  • Ein Artikel zum Verständnis der Erstellung, des Hochladens, Abrufens und Bereitstellens von Docker-Images
  • Verwenden Sie Docker, um ein verteiltes lnmp-Image zu erstellen

<<:  24 praktische Tipps zur JavaScript-Entwicklung

>>:  SASS Style Programmierhandbuch für CSS

Artikel empfehlen

So ändern Sie den Punkt im WeChat-Applet Swiper-Dot in einen Slider

Inhaltsverzeichnis Hintergrund Zieleffekt Ideen e...

Implementierungsprozessdatensatz für benutzerdefinierte Vue-Tabellenspalten

Inhaltsverzeichnis Vorwort Rendern setTable-Kompo...

Lösung zum Vergessen des Root-Passworts von MySQL5.7 unter Windows 8.1

【Hintergrund】 Mir ist beim Lernen kürzlich etwas ...

So verstehen Sie SELinux unter Linux

Inhaltsverzeichnis 1. Einführung in SELinux 2. Gr...

Implementierung der MySQL GRANT-Benutzerautorisierung

Bei der Autorisierung geht es darum, einem Benutz...

Details zur Verwendung regulärer Ausdrücke in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Bereiten Sie ...

Tutorial zum Erstellen eines FTP-Servers in Ubuntu 16.04

Ubuntu 16.04 baut FTP-Server FTP installieren FTP...

Beispielanalyse der MySQL-Datumsverarbeitungsfunktion

Dieser Artikel stellt hauptsächlich die Beispiela...

Einführung und Analyse von drei Binlog-Formaten in MySQL

eins. Einführung in das Mysql Binlog-Format Das M...