So verwenden Sie Docker zum Erstellen einer Entwicklungsumgebung (Windows und Mac)

So verwenden Sie Docker zum Erstellen einer Entwicklungsumgebung (Windows und Mac)

Wir alle stoßen bei der Entwicklung auf dieses Problem: Nachdem eine Funktion lokal entwickelt wurde, kann sie unbrauchbar werden, wenn sie auf dem Server bereitgestellt wird oder wenn andere sie auf den lokalen Server ziehen, um mit der Entwicklung fortzufahren.

Die meisten dieser Ausnahmen sind auf Abhängigkeitsunterschiede aufgrund unterschiedlicher Systeme zurückzuführen. Um dieses Problem zu lösen, muss daher eine einheitliche Entwicklungsumgebung auf Basis von Docker erstellt werden.

Grundlegende Kenntnisse zu Docker finden Sie im Docker-Tutorial.

1. Vorteile der Verwendung von Docker

Einfach zu implementieren

Normalerweise dauert es lange, bis wir die Umgebung aufgebaut haben. Bei der Teamarbeit geht mit jedem Neuzugang vermeidbare Zeit verloren. Darüber hinaus treten beim Erstellen der Umgebung häufig verschiedene Probleme auf, die dazu führen, dass der Projektcode nicht ordnungsgemäß ausgeführt wird. Wenn Docker verwendet wird, muss nur die erste Person den Entwicklungscontainer schreiben, und andere müssen ihn nur herunterladen, um den Aufbau der Projektumgebung abzuschließen, wodurch sinnlose Zeitverschwendung effektiv vermieden werden kann.

Isolierung

Wir stellen häufig mehrere Projektumgebungen auf einem Computer bereit. Wenn sie direkt installiert werden, können sie sich gegenseitig stören. Beispielsweise erfordert ein Projekt Node.js 14, während ein anderes Node.js 12 erfordert. Wenn sie direkt auf dem lokalen Computer bereitgestellt werden, können sie nicht koexistieren. Wenn Docker verwendet wird, kann dieses Problem vermieden werden. Docker stellt außerdem sicher, dass jede Anwendung nur die ihr zugewiesenen Ressourcen (einschließlich CPU, Speicher und Festplattenspeicher) verwendet. Eine bestimmte Software nutzt nicht alle verfügbaren Ressourcen, was andernfalls zu einer Verschlechterung der Leistung oder sogar dazu führen könnte, dass andere Anwendungen überhaupt nicht mehr funktionieren.

2. Docker installieren

1) Installieren Sie Docker unter Linux

Am Beispiel von Arch Linux zeigen sich ähnliche Distributionen, die allerdings unterschiedliche Paketverwaltungstools verwenden.

# Richten Sie eine inländische Spiegelstation ein, die den inländischen Betrieb beschleunigt. Dies ist optional. $ sudo pacman-mirrors -i -c China -m rank

# Installieren Sie Docker mit Pacman
$ sudo pacman -S Docker

# Erstellen Sie eine Docker-Benutzergruppe. Standardmäßig verwendet der Docker-Befehl einen Unix-Socket, um mit der Docker-Engine zu kommunizieren. Nur der Root-Benutzer und Benutzer in der Docker-Gruppe können auf den Unix-Socket der Docker-Engine zugreifen. Aus Sicherheitsgründen wird der Root-Benutzer auf Linux-Systemen grundsätzlich nicht direkt verwendet. Daher besteht ein besserer Ansatz darin, Benutzer, die Docker verwenden müssen, zur Docker-Benutzergruppe hinzuzufügen.
$ sudo groupadd docker

# Fügen Sie den aktuellen Benutzer zur Docker-Gruppe hinzu. Die Änderungen werden wirksam, nachdem Sie sich vom aktuellen Terminal abgemeldet und erneut angemeldet haben. $ sudo usermod -aG docker $USER

# Testen Sie, ob die Installation erfolgreich ist $ docker run --rm hello-world

2) Windows 10

Es ist relativ einfach, Docker unter Windows 10 zu installieren. Hierzu gibt es mehrere Möglichkeiten:

Manueller Download und Installation:

Laden Sie Docker Desktop für Windows herunter. Da der Download von der offiziellen Website langsam ist, können Sie auf diesen Link klicken, wenn Sie lokal herunterladen müssen

Doppelklicken Sie nach dem Herunterladen auf Docker Desktop Installer.exe, um die Installation zu starten.

Installation mit Winget:

$ winget installiere Docker.DockerDesktop

Führen Sie Docker aus:

Geben Sie Docker in die Windows-Suchleiste ein und klicken Sie zum Starten auf Docker Desktop.

Nachdem Docker gestartet wurde, wird in der Windows-Taskleiste ein Walsymbol angezeigt.

Warten Sie einen Moment. Wenn das Walsymbol stillsteht, bedeutet dies, dass Docker erfolgreich gestartet wurde. Sie können dann PowerShell/CMD/Windows Terminal öffnen, um Docker zu verwenden.

3) macOS

Installation mit Homebrew:

Homebrews Cask unterstützt bereits Docker Desktop für Mac, daher ist die Installation mit Homebrew Cask einfach:

$ brew install --cask Docker

Manueller Download und Installation:

Wenn Sie den Download manuell durchführen müssen, klicken Sie auf „Docker Desktop für Mac herunterladen“. Da der Download von der offiziellen Website langsam ist, können Sie auf diesen Link klicken, wenn Sie lokal herunterladen müssen

Bitte achten Sie darauf, die Software entsprechend dem Chiptyp herunterzuladen. Die Versionen für M1- und Intel-Chips sind nicht universell.

Wie bei anderer macOS-Software ist die Installation sehr einfach. Doppelklicken Sie auf die heruntergeladene .dmg-Datei und ziehen Sie dann das Walsymbol namens Moby in den Anwendungsordner (während dieses Vorgangs müssen Sie das Benutzerkennwort eingeben).

Führen Sie Docker aus:

Suchen Sie unter „Anwendungen“ nach dem Docker-Symbol und klicken Sie auf „Ausführen“.

Nach dem Ausführen wird in der oberen rechten Ecke der Menüleiste ein Walsymbol angezeigt, das den Ausführungsstatus von Docker anzeigt.

Nachdem die Installation abgeschlossen und gestartet ist, können wir die installierte Docker-Version über den Befehl im Terminal überprüfen.

$ docker --version

3. Docker-Quellcode ändern

Die Standardquelle von Docker ist fremd und die Geschwindigkeit des inländischen Zugriffs ist relativ langsam. Sie können daher zu einer inländischen Quelle wechseln, um die Geschwindigkeit beim Abrufen von Bildern zu erhöhen.

1) Änderung der Linux-Quelle

Unter Linux ist es relativ einfach. Erstellen Sie einfach eine Datei deamon.json und notieren Sie die Konfiguration:

$ vi /etc/docker/deamon.json

# Eingabespiegelquelle {
  # Es ist auch möglich, nur eine Quelle zu ändern und anstelle eines Arrays direkt eine Zeichenfolge zu verwenden.
  "Registrierungsspiegel": [
    „https://registry.docker-cn.com“,
    "http://hub-mirror.c.163.com",
    „https://docker.mirrors.ustc.edu.cn“
  ],
}

# :wq Speichern, beenden und Docker neu starten
$ systemctl Neustart Docker

2) Wechseln Sie zwischen Windows und Mac

Sowohl Windows als auch Mac verwenden Docker Desktop, sodass Sie es direkt in der GUI konfigurieren können.

Öffnen Sie die Docker-Oberfläche und klicken Sie auf Docker Engine:

Geben Sie im Ausgabefeld rechts die Spiegelquelle ein:

{
    "Registrierungsspiegel": [
        „https://registry.docker-cn.com“,
        "http://hub-mirror.c.163.com",
        „https://docker.mirrors.ustc.edu.cn“
    ],
    }

4. Dockerfile schreiben

Nach der Installation von Docker können wir dann unsere eigene Projektentwicklungsumgebung schreiben. In diesem Artikel wird die Front-End-Entwicklungsumgebung als Beispiel zum Erstellen einer Docker-Datei verwendet.

Enthaltene Umgebung:

  • Node.js 14.17
  • npm 6.14
  • Garn 1,22
# In der Front-End-Entwicklung werden häufig Shell-Befehle benötigt, und eine relativ vollständige Umgebung ist wichtiger. Daher wird Ubuntu als Basis gewählt. Wenn Ihnen die Größe des Containers wichtig ist, können Sie das entsprechende Basisimage von Ubuntu auswählen
ETIKETT org.opencontainers.image.authors="[email protected]"

# Setzen Sie die Umgebungsvariable ENV DEBIAN_FRONTEND noninteractive

# Zeitzone ARG TZ=Asia/Shanghai einstellen
ENV TZ ${TZ}

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# Verwenden Sie den Root-Benutzer, um den USER-Root zu bedienen

# Ändern Sie die Alibaba Cloud-Quelle, um den Prozess in China zu beschleunigen. RUN sed -i "s/security.ubuntu.com/mirrors.aliyun.com/" /etc/apt/sources.list && \
    sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/" /etc/apt/sources.list && \
    sed -i "s/security-cdn.ubuntu.com/mirrors.aliyun.com/" /etc/apt/sources.list
Führen Sie apt-get clean aus.

# Aktualisieren Sie die Quelle und installieren Sie die entsprechenden Tools. RUN apt-get update && apt-get install -y \
    zsh \
    vim \
    wget \
    Locke \
    Python \
    Git-Kern

# Installieren Sie zsh, damit Sie die Shell später bequemer verwenden können, wenn Sie den Container betreten
Führen Sie git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh && \ aus.
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc && \
    git-Klon https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
    git-Klon https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \
    sed -i 's/^plugins=(/plugins=(zsh-autosuggestions zsh-syntax-highlighting z /' ~/.zshrc && \
    chsh -s /bin/zsh

# Erstellen Sie meinen Benutzer RUN useradd --create-home --no-log-init --shell /bin/zsh -G sudo me && \
    füge Benutzer hinzu, sudo && \
    echo 'me:Passwort' | chpasswd

# Installiere omz für mich
BENUTZER ich
Führen Sie git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh && \ aus.
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc && \
    git-Klon https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
    git-Klon https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \
    sed -i 's/^plugins=(/plugins=(zsh-Autosuggestions zsh-Syntaxhervorhebung z /' ~/.zshrc

# Installieren Sie nvm und node
ENV NVM_DIR=/home/me/.nvm \
    NODE_VERSION=v14

RUN mkdir -p $NVM_DIR && \
    curl -o- https://gitee.com/mirrors/nvm/raw/master/install.sh | bash && \
    . $NVM_DIR/nvm.sh && \
    nvm installiere ${NODE_VERSION} && \
    keine Sorge, verwenden Sie ${NODE_VERSION} && \
    nvm-Alias ​​${NODE_VERSION} && \
    ln -s `npm bin --global` /home/me/.node-bin && \
    npm install --global nrm && \
    nrm verwenden taobao && \
    echo '' >> ~/.zshrc && \
    echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc && \
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Dies lädt nvm' >> ~/.zshrc

# Garn installieren
RUN curl -o- -L https://yarnpkg.com/install.sh | bash; \
    echo '' >> ~/.zshrc && \
    echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.zshrc

# Fügen Sie NVM-Binärdateien zu Roots .bashrc hinzu
BENUTZER root

RUN echo '' >> ~/.zshrc && \
    echo 'export NVM_DIR="/home/me/.nvm"' >> ~/.zshrc && \
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # Dies lädt nvm' >> ~/.zshrc && \
    echo '' >> ~/.zshrc && \
    echo 'export YARN_DIR="/home/me/.yarn"' >> ~/.zshrc && \
    echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.zshrc

# PATH für Knoten und YARN hinzufügen
ENV-PFAD $PATH:/home/me/.node-bin:/home/me/.yarn/bin

# Löschen Sie apt/lists, um die endgültige Bildgröße zu reduzieren. RUN rm -rf /var/lib/apt/lists/*

ARBEITSVERZEICHNIS /var/www
Nachdem Sie das Dockerfile geschrieben haben, erstellen Sie es:

Docker-Build -t Frontend/React:v1.
Nach dem Erstellen können Sie direkt ausführen:

# Als ich ausführen, empfohlene Methode: docker run --user=me -it frontend/react:v1 /bin/zsh

# Als Root ausführen docker run -it frontend/react:v1 /bin/zsh

5. Schreiben Sie docker-compose.yml

Während der Entwicklung müssen wir normalerweise mehrere Container zusammen verwenden, z. B. MySQL oder andere Container. Die Verwendung von docker-compose.yml kann sie besser organisieren.

Version: '2'
Leistungen:
    reagieren:
    bauen:
        Kontext: .
        Docker-Datei: reagieren/Docker-Datei
    tty: wahr
    Häfen:
        30000: 3000
    Bände:
        - ./reagieren/www:/var/www
    Netzwerke:
        -Frontend
    MySQL:
    Bild:mysql:5.7
    Häfen:
        - 33060:3306
    Bände:
        - ./mysql/data:/var/lib/mysql
        - ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
    Umfeld:
        -MYSQL_ROOT_PASSWORD=Passwort
    Netzwerke:
        -Frontend

#Legen Sie die Container in dieselben Netzwerke und greifen Sie direkt über den Containernamen auf die Netzwerke zu:
    Frontend:
    Treiber: Brücke

6. Starten Sie den Container

Nachdem Sie die obige Docker-Datei und docker-compose.yml geschrieben haben, können Sie fröhlich mit der Entwicklung beginnen!

# Geben Sie das Verzeichnis ein, in dem sich docker-compose.yml befindet $ cd frontend

# Starten Sie alle Container in docker-compose.yml im Hintergrund. Wenn der Container noch nicht erstellt ist, wird er zuerst erstellt. $ docker-compose up -d

# Geben Sie den React-Container für die Befehlszeileninteraktion ein $ docker-compose exec --user=me react /bin/zsh

Um zu testen, ob Container aufeinander zugreifen können, können Sie folgende Datei schreiben. Die Datenbank müssen Sie selbst erstellen:

// index.js
const mysql = erfordern('mysql')
const-Verbindung = mysql.createConnection({
    Host: "mysql",
    Benutzer: 'root',
    Passwort: „Passwort“,
    Datenbank: 'Test',
})

Verbindung.verbinden();

connection.query(`SELECT * FROM users`, Funktion (Fehler, Ergebnisse, Felder) {
    wenn (Fehler) Fehler auslösen;
    console.log(Ergebnisse)
})

Verbindung.Ende();

Führen Sie es dann aus und Sie können das Ergebnis sehen:

$ Knotenindex.js
[ RowDataPacket { id: 1, name: 'Caster' } ]

7. Fazit

Es ist sehr praktisch, Docker zum Erstellen einer Entwicklungsumgebung zu verwenden. Einmal erstellt, kann es mehrfach auf vielen Maschinen verwendet werden. Selbst wenn Sie das System neu installieren müssen, müssen Sie die Konfiguration nicht wiederholen.

Wenn Sie nicht gerne Dockerfile schreiben, können Sie auch direkt einen Container starten, den Container aufrufen, ihn konfigurieren und ihn dann mit Docker Save/Export exportieren.

Quellen:

1. Docker-Tutorial

2. Docker erstellt eine Entwicklungsumgebung

Damit ist dieser Artikel zum Erstellen einer Entwicklungsumgebung (Windows und Mac) mit Docker abgeschlossen. Weitere Informationen zum Erstellen einer Entwicklungsumgebung mit Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detailliertes Tutorial zur Verwendung von Docker zum Erstellen einer Laravel-Entwicklungsumgebung in der Win10-Home-Version
  • Ein ausführliches Tutorial zur Verwendung von Docker zum Erstellen einer vollständigen Entwicklungsumgebung
  • Win10 Docker-Toolsbox-Tutorial zum Erstellen einer PHP-Entwicklungsumgebung
  • Führen Sie die Schritte zum Erstellen einer Laravel-Entwicklungsumgebung mit Docker aus
  • Detaillierte Erklärung zur Installation der Laravel-Entwicklungsumgebung mit Docker
  • Tutorial zum Konfigurieren einer PHP-Entwicklungsumgebung mit Docker

<<:  Problem beim doppelten Laden, wenn die Seite img src enthält

>>:  Beispielcode zur Implementierung von horizontalem Endlos-Scrollen mit reinem CSS3

Artikel empfehlen

Detaillierte Erklärung des einfachen Stores von Vue

Die einfachste Store-Anwendung in Vue ist die glo...

Verwendung des Linux-Watch-Befehls

1. Befehlseinführung Der Befehl „Watch“ führt den...

vue-cli4.5.x erstellt schnell ein Projekt

1. Installieren Sie vue-cli npm ich @vue/cli -g 2...

Detaillierte Beschreibung der Funktion von new in JS

Inhaltsverzeichnis 1. Beispiel 2. Erstelle 100 So...

Beispielcode zur Implementierung eines 3D-Rotationseffekts mit reinem CSS

Verwenden Sie hauptsächlich die Eigenschaften „pr...

Beispiel zum Ändern von Stilen über CSS-Variablen

Frage Wie ändere ich den CSS-Pseudoklassenstil mi...

Anwendungsszenario für die MySQL-Konfiguration mehrerer Instanzen

Inhaltsverzeichnis Mehrere MySQL-Instanzen Übersi...

Detailliertes Tutorial zur Installation des Tomcat9-Windows-Dienstes

1. Vorbereitung 1.1 Laden Sie das komprimierte To...

12 Javascript-Tabellensteuerelemente (DataGrid) sind aussortiert

Wenn die DataSource-Eigenschaft eines DataGrid-Ste...