Erstellen Sie ein Verzeichnis mit dem Mkdir-Befehl in einem Container mit Dockerfile
Docker-Container sind de facto zur Methode geworden, um Software und Abhängigkeiten in verschiedenen Umgebungen zu verwalten. Wenn Sie mit echten Anwendungen arbeiten, müssen Sie zweifellos ein Dockerfile erstellen, bevor Sie das Container-Image Ihrer Anwendung erstellen können.
Verzeichnis mit dem Befehl mkdir
in einem Container mit Dockerfile erstellen
Abgesehen davon, dass Entwickler nur die Befehle zusammenstellen können, die zum Erstellen von Docker-Images erforderlich sind, können wir mit Dockerfiles noch so viel mehr tun. Um ein Docker-Image erfolgreich mit einer Docker-Datei zu erstellen, müssen Sie einige grundlegende Befehle kennen.
Einige der am häufigsten verwendeten Befehle sind:
VON
- Erstellt eine Ebene des übergeordneten Bildes/Basisbildes, das verwendet wird.WORKDIR
- erlaubt uns, das Arbeitsverzeichnis festzulegen.KOPIEREN
- erlaubt uns, aktuelle Verzeichnisinhalte in ein Verzeichnis im Container zu kopieren.PULL
– Fügt Dateien aus Ihrem Docker-Repository hinzu.RUN
- Befehl, der ausgeführt werden soll, wenn wir das Image erstellen möchten.CMD
– gibt an, welcher Befehl ausgeführt werden soll, wenn der Container startet.ENV
– Definiert Umgebungsvariablen, die während des Builds verwendet werden.ENTRYPOINT
– gibt an, welcher Befehl ausgeführt werden soll, wenn der Container startet.MAINTAINER
- Gibt den Urheber des Bildes an.
Mit den obigen Befehlen können wir eine Docker-Datei wie die folgende erstellen, die Python als Basis-Image verwendet.
Code:
# base image
FROM Python
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
# Run the app
CMD ["echo", "Hello, Developer"]
Dieses Dockerfile ist Teil einer einfachen Flask-Anwendung, die nur eine Nachricht auf der Konsole ausgibt. Hier ist die Datei requirements.txt
, wenn Sie daran interessiert sind, dieselbe Anwendung zu erstellen.
click==8.0.4
Flask==2.0.3
gunicorn==20.1.0
itsdangerous==2.1.0
Jinja2==3.0.3
MarkupSafe==2.1.0
Werkzeug==2.0.3
Die Hauptdatei app.py
, die diese Hauptanwendungsdatei enthält, ist unten dargestellt.
Code:
from flask import Flask
app = Flask(__name__)
def hello():
print("Hello, this is a simple Flask application")
hello()
Um nun ein Verzeichnis mit dem Befehl mkdir
im Dateisystem unseres Docker-Containers zu erstellen, verwenden wir den Befehl RUN
wie unten gezeigt.
# base image
FROM Python
# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt
# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
RUN mkdir -p /var/www/new_directory
# Run the app
CMD ["echo", "Hello, Developer"]
Mit dem Befehl RUN mkdir -p /var/www/new_directory
können Sie ein Verzeichnis namens new_directory
im Docker-Dateisystem erstellen, das wir schließlich mit einem Image erstellen werden, das mit der obigen Docker-Datei erstellt wurde.
Wir beginnen jedoch damit, ein Docker-Image basierend auf Python als Basis-Image zu erstellen, indem wir den folgenden Befehl ausführen.
isaac@DESKTOP-HV44HT6:~/my-app$ docker build -t new_image .
Ausgang:
Bestätigen Sie, dass wir erfolgreich ein Docker-Image aus der Docker-Datei erstellt haben, indem Sie den Befehl docker images
unten verwenden.
$ docker images
Ausgang:
REPOSITORY TAG IMAGE ID CREATED SIZE
new_image latest 7ab964c50876 13 minutes ago 932MB
Nachdem wir nun ein Docker-Image eingerichtet haben, können wir fortfahren und einen Docker-Container erstellen und bestätigen, ob das Verzeichnis mit dem Namen new_directory
erstellt wurde. Wie unten gezeigt, müssen wir Bash
innerhalb des Containers starten, um durch Verzeichnisse innerhalb des Docker-Containers zu navigieren.
$ docker run -it new_image bash
root@ea42f35d5404:/var/www#
Sie werden feststellen, dass das neue_Verzeichnis
erstellt wurde, nachdem Sie die Dateien in diesem Verzeichnis aufgelistet haben. Darüber hinaus können wir auch im Verzeichnis selbst navigieren und sogar neue Dateien darin erstellen.
root@ea42f35d5404:/var/www# ls
app.py new_directory requirements.txt
root@ea42f35d5404:/var/www# cd new_directory
root@ea42f35d5404:/var/www/new_directory# ls
root@ea42f35d5404:/var/www/new_directory# touch new_file
root@ea42f35d5404:/var/www/new_directory# ls
new_file
Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.
LinkedIn