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

Diagramm des Installations- und Verwendungstutorials für MySQL 8.0.17

Vorne geschrieben In der Vergangenheit und in akt...

Hast du genau verstanden Schlagworte Definition Verwendung

Vorwort : Heute wurde ich gefragt: „Haben Sie das ...

So verhindern Sie mit Nginx die böswillige Auflösung von IP-Adressen

Zweck der Verwendung von Nginx Lassen Sie uns zun...

So löschen Sie eine MySQL-Tabelle

Das Löschen einer Tabelle in MySQL ist sehr einfa...

CentOS7 verwendet RPM, um MySQL 5.7-Tutorialdiagramm zu installieren

1. Laden Sie 4 RPM-Pakete herunter mysql-communit...

So legen Sie die UTF-8-Kodierung in einer MySQL-Datenbank fest

Ändern Sie die Datei /etc/my.cnf oder /etc/mysql/...

Detaillierte Erklärung der neuen Funktion ROLE in MySQL 8

Welche Probleme löst MySQL ROLE? Wenn Sie ein DBA...

MySQL 5.7.10 Installationsdokumentation Tutorial

1. Installieren Sie Abhängigkeitspakete yum -y in...

Detaillierte Analyse von MySQL-Datenbanktransaktionen und -Sperren

Inhaltsverzeichnis 1. Grundlegende Konzepte SÄURE...

6 ungewöhnliche HTML-Tags

Zuerst: <abbr> oder <acronym> Diese be...