Es gibt zwei Möglichkeiten, ein Docker-Image zu erstellen: 1. Verwenden Sie den Befehl „Docker Commit“, um das Image basierend auf dem vorhandenen Container manuell zu erstellen. 2. Verwenden Sie Dockerfile, um das Image automatisch zu erstellen indem Sie die Anweisungen in der Dockerfile-Builddatei lesen.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Docker-1.13.1-Version, Dell G3-Computer.
Manchmal kann das aus dem Docker-Image-Warehouse heruntergeladene Image die Anforderungen nicht erfüllen.
Einführung in die Image-Konstruktion
Unter welchen Umständen müssen wir das Image selbst erstellen?
(1) Wenn wir kein vorhandenes Image finden können, beispielsweise eine von uns selbst entwickelte Anwendung
(2) Wir müssen dem Image bestimmte Funktionen hinzufügen
Es gibt zwei Möglichkeiten für Docker, ein Image zu erstellen: docker commit-Befehl und Dockerfile
Build-Dateidocker commit
命令与Dockerfile
构建文件
docker commit构建镜像
基于已有容器构建镜像主要是通过docker commit
Docker-Commit
verwendet Befehl zum Erstellen eines neuen Images. - Es gibt drei Hauptschritte zum Erstellen von Dockercommit:
- Führen Sie den Container aus.
- Ändern Sie den Container.
Speichern Sie den Container als neues Image.
Installieren Sie beispielsweise den VIM-Editor im Centos-Image und speichern Sie ihn als Neues Image (1) Container ausführen[root@ken1 docker]# docker run -it centos Unable to find image 'centos:latest' locally latest: Pulling from library/centos a02a4930cb5d: Pull complete Digest: sha256:184e5f35598e333bfa7de10d8fb1cebb5ee4df5bc0f970bf2b1e7c7345136426 Status: Downloaded newer image for centos:latest(2) Den VIM-Editor installieren Der VIM-Editor bestätigt, dass er nicht installiert ist
[root@69f501e858a6 /]# vim bash: vim: command not foundInstalliere ihn
[root@69f501e858a6 /]# yum install vim -y(3) Als neues Image speichern Zuerst Überprüfen Sie das aktuell laufende Image
[root@ken1 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 69f501e858a6 centos "/bin/bash" 2 minutes ago Up 2 minutes quizzical_torvalds
Verwenden Sie Commit, um es zu speichern. Das neue Image
[root@ken1 ~]# docker commit 69f501e858a6 centos-vim sha256:42083b89a179368bc29a8f40d14f8824990183c8e4b28fd84411d440c26342e5
69f501e858a6 ist die ID des laufenden Containers. Sie können auch den Namen unten verwenden.
centos-vim ist der Name des neuen Images.Überprüfen Sie, ob ein Centos-VIM-Image vorhanden ist.
[root@ken1 ~]# docker run -it centos-vim [root@61d090898bad /]# vim [root@61d090898bad /]# vim test. Das Obige zeigt, wie Um Commit zum Erstellen eines neuen Bildes zu verwenden, empfiehlt Docker aus folgenden Gründen nicht, diese Methode zum Erstellen eines Bildes zu verwenden:
- Dies ist eine manuelle Methode zum Erstellen von Bildern, der Container ist fehleranfällig und ineffizient schwach in der Wiederholbarkeit
- Noch wichtiger. Der Benutzer weiß nicht, wie das Bild erstellt wird. Befindet sich darin ein Schadprogramm?
Dockerfile zum Erstellen des Images.
Dockerfile ist eine Datei, die aus einer Reihe von Anweisungen besteht. Das Docker-Programm generiert schließlich ein Image, indem es die Anweisungen liest Docker-Datei.
Das erste Dockerfike
Schritt 1: Neues Verzeichnis erstellen
[root@ken1 ~]# mkdir /test
Schritt 2: Dockerfile schreiben
Der Name heißt Dockerfile und das erste D muss groß geschrieben werden
[root@ken1 ~]# cat Dockerfile FROM centos RUN yum install vim -y
FROM Centos bedeutet die Verwendung von Centos als Basisbild
RUN bedeutet, den VIM-Editor auf Centos zu installieren
Schritt 3: Erstellen Sie das Image
[root@ken1 ~]# docker build -t centos-vim2 .
Geben Sie den Tag-Namen (Tag) des neuen Images nach -t an
Der letzte Punkt zeigt an, dass der Docker-Kontext das aktuelle Verzeichnis ist . Docker sucht standardmäßig im Build-Kontext nach der Docker-Datei. Schritt 4: Zeigen Sie den Build-Verlauf des Bildes an das Bild, das den Ausführungsprozess der Docker-Datei darstellt.
Dcokerfile allgemeine Anweisungen
1.FROMGeben Sie das Basisbild an
2. MAINTAINER
Legen Sie den Autor des Bildes fest. Es kann ein beliebiges Zeichen sein kopiert werden Die Dateien oder Verzeichnisse im dynamischen Build-Kontext können sich nur im selben Verzeichnis wie die Docker-Datei befinden 4.ADD
ähnelt COPY und kopiert Dateien aus dem Build-Kontext in das Image.
Der Unterschied besteht darin, dass, wenn src eine Archivdatei (tar, zip, tgz, xz) ist, die Datei automatisch an dest übertragen wird.
5.ENV
Setzen Sie Umgebungsvariablen, die von nachfolgenden Anweisungen verwendet werden können, z als:
ENV name ken RUN echo $name
6.EXPOSE
Der Prozess im angegebenen Container hört auf einen bestimmten Port, und Docker kann den Port freigeben
7.VOLUME
Deklarieren Sie eine Datei oder ein Verzeichnis als ein Volume
10.CMD
容器启动时运行指定的命令
dockerfile中可以多个CMD指令,但是只要最后一个生效。CMD可以被docker run之后的参数替换
11.ENTRYPOINT
设置容器启东市的命令
dockerfile中可以有多个ENTRYPOINT,但是只有最后一个生效。
CMD或者docker run之后的参数会被当做参数传递给ENTERYPOINT.
Dockerfile演示
下面演示一个比较全面的dockerfile
[root@ken1 test]# cat Dockerfile #my Dockerfile FROM busybox MAINTAINER ken WORKDIR /ken RUN touch test COPY ["ken1","."] ADD ["wordpress.tar.gz","."] ENV name "ken"
注意:Dockerfile支持以#开头的注释
构建镜像
[root@ken1 test]# docker build -t myimage . Sending build context to Docker daemon 4.281MB Step 1/7 : FROM busybox ---> 3a093384ac30 Step 2/7 : MAINTAINER ken ---> Running in 2a73a83507ce Removing intermediate container 2a73a83507ce ---> 8c3df9b3d823 Step 3/7 : WORKDIR /ken ---> Running in 31c6f9fe2195 Removing intermediate container 31c6f9fe2195 ---> a458cf986072 Step 4/7 : RUN touch test ---> Running in e1b08ebd363c Removing intermediate container e1b08ebd363c ---> 41601920009a Step 5/7 : COPY ["ken1","."] ---> 2ebfa0933fca Step 6/7 : ADD ["wordpress.tar.gz","."] ---> d0ad29d3aa34 Step 7/7 : ENV name "ken" ---> Running in fceae6e20e63 Removing intermediate container fceae6e20e63 ---> 7efe0600e48f Successfully built 7efe0600e48f Successfully tagged myimage:latest
查看镜像
运行该镜像
[root@ken1 test]# docker run -it myimage /ken # ls ken1 test wordpress /ken # echo $name ken
- 可以发现当前工作目录为/ken,且自动创建
- ken1是我们从docker context目录中复制过去的
- test是使用touch创建的
- wordpres压缩包已经被自动解压
- $name为变量值为ken
推荐学习:《docker视频教程》
Das obige ist der detaillierte Inhalt vonEs gibt mehrere Möglichkeiten, ein Docker-Image zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Docker vereinfacht die Anwendungsbereitstellung und -verwaltung unter Linux. 1) Docker ist eine Containerplattform, die Anwendungen und ihre Abhängigkeiten in leichte und tragbare Container verpackt. 2) Unter Linux verwendet Docker CGroups und Namespaces, um die Isolation von Containern und die Ressourcenverwaltung zu implementieren. 3) Zu den grundlegenden Verwendungen gehören das Ziehen von Bildern und laufende Behälter. Fortgeschrittene Verwendungen wie DockerComponpose können Multi-Container-Anwendungen definieren. 4) DEBUG DEBUG DECKERLOGS und DOCKEREXEC -Befehle. 5) Die Leistungsoptimierung kann die Bildgröße durch mehrstufige Konstruktion verringern, und es ist die beste Verfahren, die Dockerfile einfach zu halten.

Docker ist ein technologiebasiertes Linux-Container-Tool, das zum Verpacken, Verteilen und Ausführen von Anwendungen verwendet wird, um die Anwendungsportabilität und Skalierbarkeit zu verbessern. 1) Befehle mit Dockerbuild und Dockerrun können zum Erstellen und Ausführen von Docker -Containern verwendet werden. 2) DockerComponpose wird verwendet, um Multi-Container-Docker-Anwendungen zu definieren und auszuführen, um die Microservice-Management zu vereinfachen. 3) Durch die Verwendung mehrstufiger Konstruktion können Sie die Bildgröße optimieren und die Antrags-Startgeschwindigkeit verbessern. 4) Die Anzeigen von Containerprotokollen ist eine effektive Möglichkeit, Containerprobleme zu debugieren.

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.

Zu den Methoden zum Anzeigen von Docker -Protokollen gehören: Verwenden des Befehls docker Protokolle, z. cat /var/log/container_name.log Verwenden Sie den Befehl docker-compose-Protokolle von Docker Compose, zum Beispiel: Docker-compose -f Docker-com

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

Vier Möglichkeiten zum Beenden von Docker Container: Verwenden Sie Strg D im Befehl Container Terminal ENGEBOT IM Container Terminal verwenden Sie Docker Stop & lt; container_name & gt; Befehl verwenden Sie Docker Kill & lt; container_name & gt; Befehl im Host -Terminal (Force Exit)

Methoden zum Kopieren von Dateien in externen Hosts in Docker: Verwenden Sie den Befehl Docker CP: Docker CP [Optionen] & lt; Containerpfad & gt; & lt; Host -Pfad & gt;. Verwenden von Datenvolumina: Erstellen Sie ein Verzeichnis auf dem Host und verwenden Sie den Parameter -V, um das Verzeichnis in den Container zu montieren, um den Container zu erstellen, um eine bidirektionale Dateisynchronisation zu erreichen.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)