Machen Sie sich eingehend mit dem DockerFile-Befehl vertraut
Dieser Artikel vermittelt Ihnen relevantes Wissen über den Befehl dockerFile. Jeder Befehl enthält Anweisungen zum Erstellen einer Ebene von Bildproduktionsdateien.
Empfohlene Studie: „Docker-Video-Tutorial“
Detaillierte Erklärung des DockerFile-Befehls
Dockerfile ist eine Bildproduktionsdatei, die Anweisungen enthält, von denen jede eine Ebene aufbaut.
Erstellen Sie das Image
docker build [选项] <上下文路径/URL/-> docker build -t nginx:v3 . # . 表示Dockerfile在当前目录
FROM gibt das Basis-Image an
Geben Sie das Basis-Image über FROM an, daher ist FROM eine notwendige Anweisung in einer Docker-Datei und muss die erste Anweisung sein.
Von Grund auf ist dieses Bild ein virtuelles Konzept und existiert nicht tatsächlich. Es stellt ein leeres Bild dar. Die folgenden Anweisungen beginnen als erste Ebene des Bildes zu existieren.
RUN-Ausführungsbefehl
RUN wird zum Ausführen von Befehlszeilenbefehlen verwendet. Es gibt zwei Formate:
Shell-Format:
RUN <命令> RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
exec-Format:
RUN ["可执行文件", "参数1", "参数2"]
Union FS hat eine maximale Anzahl von Ebenen, z. B. AUFS. Früher betrug die maximale Anzahl an Ebenen 42, jetzt sind es 127. Dieselbe Funktion sollte && verwenden, um die erforderlichen Befehle zu verketten, um die Anzahl der Spiegelebenen zu vereinfachen Datei oder entpacken Sie die Datei)
COPY [--chown=<user>:<group>] <宿主机源路径> <镜像内的目标路径> COPY [--chown=<user>:<group>] ["<宿主机源路径1>",... "<镜像内的目标路径>"]
# 把当前目录的a.txt文件复制到镜像的根目录 COPY a.txt /a.txt
ADD [--chown=<user>:<group>] http://xxx <目标路径> # 下载文件到镜像的目标路径 ADD [--chown=<user>:<group>] ./a.tar.gz <目标路径> # 复制压缩包,并自动解压到目标路径
ENTRYPOINT angegeben, ähnlich wie bei CMD
Das Format stimmt mit CMD überein. die Unterschiede1. Verwenden Sie ENTRYPOINT, um Parameter zu übergebenGeben Sie ENTRYPOINT in der Docker-Datei an [ „curl“, „-s“, „http://myip.ipip.net“ ], wenn die Befehlszeile docker run myip - i, der Parameter -i wird an den ENTRYPOINT-Befehl übergeben und schließlich beim Betreten des -Containers Der Container führt Curl -s http://myip.ipip.net -i
2 aus und führt einige Initialisierungsarbeiten durch Das hat nichts mit CMD zu tun. Unabhängig vom CMD des Containers muss im Voraus eine Vorverarbeitung durchgeführt werden.
Ähnlich wie ENTRYPOINT ["docker-entrypoint.sh"] Dieses Skript prüft, ob die Identität des Benutzers legal ist usw.
ENV legt Umgebungsvariablen fest
CMD ["可执行文件", "参数1", "参数2"...]
ARG-Build-Parameter
# 指定进入容器马上指定 cat /a.txt CMD ["sh","-c", "cat /a.txt"]
ENV <key> <value> ENV <key1>=<value1> <key2>=<value2>...
ARG <参数名>[=<默认值>]
ARG DOCKER_USERNAME=library FROM ${DOCKER_USERNAME}/alpine
EXPOSE Exposed Port
FROM ${DOCKER_USERNAME}/alpine # 在FROM 之后使用变量,必须在每个阶段分别指定 ARG DOCKER_USERNAME=library RUN set -x ; echo ${DOCKER_USERNAME}
Unterscheiden Sie zwischen EXPOSE und der Verwendung von -p
WorkDir Gibt das Arbeitsverzeichnis an. wird als Root ausgeführt. Wenn Sie die Identität während der Ausführung ändern möchten, beispielsweise wenn Sie einen Dienstprozess als bereits eingerichteter Benutzer ausführen möchten, verwenden Sie nicht su oder sudo. Diese erfordern aufwändigere Konfigurationen und es treten häufig Fehler auf Umgebungen, in denen TTY fehlt. Es wird empfohlen, Gosu zu verwenden.
VOLUME ["<路径1>", "<路径2>"...] VOLUME <路径>
EXPOSE <端口1> [<端口2>...]
Optionen:
WORKDIR <工作目录路径>
Wenn die HEALTHCHECK-Anweisung in einem Image angegeben ist, wird sie zum Starten des Containers verwendet Wenn die Prüfung der HEALTHCHECK-Anweisung erfolgreich ist, wird sie fehlerfrei. HEALTHCHECK kann nur einmal erscheinen. Wenn mehrere geschrieben werden, wird nur der letzte wirksam
CMD 命令的返回值决定了该次健康检查的成功与否:0:成功;1:失败
ONBUILD 指定某些命令只有当以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行
ONBUILD <其它指令>
# 举例如下Dockerfile,初次构建为镜像my-node时,ONBUILD的三行命令不会执行 FROM node:slim RUN mkdir /app WORKDIR /app ONBUILD COPY ./package.json /app ONBUILD RUN [ "npm", "install" ] ONBUILD COPY . /app/ CMD [ "npm", "start" ] # 只要当其他镜像 FROM my-node 从上面镜像作为基础镜像进行构建时,ONBUILD 的命令开始执行
LABEL 为镜像添加元数据
LABEL <key>=<value> <key>=<value> <key>=<value> ...
# 标注镜像的作者 LABEL org.opencontainers.image.authors="yeasy"
SHELL 指定执行shell命令的参数
SHELL ["可执行程序", "参数"]
SHELL ["/bin/sh", "-c"] RUN lll ; ls # 这里的shell命令将通过 /bin/sh -c 的方式执行
推荐学习:《docker视频教程》
Das obige ist der detaillierte Inhalt vonMachen Sie sich eingehend mit dem DockerFile-Befehl vertraut. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Schritte zum Erstellen eines Docker -Images: Schreiben Sie eine Dockerfile, die die Build -Anweisungen enthält. Erstellen Sie das Bild im Terminal mit dem Befehl Docker Build. Markieren Sie das Bild und weisen Sie Namen und Tags mit dem Befehl Docker Tag zu.

Die Schritte zur Aktualisierung eines Docker -Images sind wie folgt: Ziehen Sie das neueste Bild -Tag. Neues Bild Löschen Sie das alte Bild für ein bestimmtes Tag (optional) den Container neu (falls erforderlich) neu starten Sie neu (falls erforderlich).

Wie benutze ich Docker Desktop? Docker Desktop ist ein Werkzeug zum Ausführen von Docker -Containern auf lokalen Maschinen. Zu den zu verwendenden Schritten gehören: 1.. Docker Desktop installieren; 2. Start Docker Desktop; 3.. Erstellen Sie das Docker -Bild (mit Dockerfile); 4. Build Docker Image (mit Docker Build); 5. Docker -Container ausführen (mit Docker Run).

Um die Docker -Version zu erhalten, können Sie die folgenden Schritte ausführen: Führen Sie den Befehl Docker "Docker --version" aus, um die Client- und Serverversionen anzuzeigen. Für Mac oder Windows können Sie auch Versionsinformationen über die Registerkarte Version der Docker -Desktop -GUI oder das Menü Docker Desktop anzeigen.

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.

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").

Um das Bild in Docker zu speichern, können Sie den Befehl docker comit verwenden, um ein neues Bild zu erstellen, das den aktuellen Status des angegebenen Containers Syntax: Docker Commit [Optionen] Container -ID -Bildname enthält. Um das Bild im Repository zu speichern, können Sie den Befehl Docker Push, Syntax: Docker -Push -Bildname [: Tag] verwenden. Um gespeicherte Bilder zu importieren, können Sie den Befehl Docker Pull, Syntax: Docker Pull Bildname [: Tag] verwenden.

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)
