GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

Docker

Docker ist eine erweiterbare Open-Source-Engine, die von Linux Containers unterstützt wird und die Bereitstellung von Anwendungen als portable, leichte und autarke Container automatisiert. Für die Zwecke dieses Tutorials gehen wir davon aus, dass Sie die in unserem Einrichten und Sichern einer Compute-Instanz beschriebenen Schritte befolgt haben, dass Ihr System auf dem neuesten Stand ist und dass Sie sich über SSH bei Ihrem Linode als root angemeldet haben /P>

Installation

Für die Zwecke dieser Anleitung zeigen wir Ihnen, wie Sie Docker sowohl auf Ubuntu 12.04 als auch auf CentOS 6.4 installieren. Docker stellt Repositories für jede dieser Distributionen bereit, was die Installation vereinfacht.

Ubuntu 12.04 64bit

Hier fügen wir das von Docker verwaltete Repository für Ubuntu hinzu und installieren die Software.

  1. Docker ist als Paket in den Ubuntu-Repositories von Docker verfügbar, jedoch nur für 64bit. Zuerst müssen Sie den Docker-Repository-Schlüssel mit apt-key hinzufügen :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    
  2. Fügen Sie das Docker-Repository zu Ihren apt-Quellen hinzu:

    echo "deb http://get.docker.io/ubuntu docker main" | sudo tee /etc/apt/sources.list.d/docker.list
    
  3. Führen Sie Folgendes aus, um apt-get update zu erhalten und lxc-docker zu installieren :

    sudo apt-get update
    sudo apt-get install lxc-docker
    
  4. Um zu überprüfen, ob die Installation erfolgreich abgeschlossen wurde, starten Sie einen Beispiel-Ubuntu-Container. Dieser Befehl greift automatisch alle fehlenden Bilder auf, führt den Container aus und stellt eine interaktive Bash-Sitzung bereit:

    sudo docker run -i -t ubuntu /bin/bash
    

    Die Ausgabe sollte wie folgt aussehen:

    # docker run -i -t ubuntu /bin/bash
    Unable to find image 'ubuntu' (tag: latest) locally
    Pulling repository ubuntu
    8dbd9e392a96: Download complete
    b750fe79269d: Download complete
    27cf78414709: Download complete
    [email protected]:/#
  5. Um den Container zu verlassen, geben Sie exit ein .

CentOS 6 64bit

Docker ist im EPEL-Repository als docker-io verfügbar Paket nur für 64bit.

  1. Um das EPEL-Repository hinzuzufügen, installieren Sie das Paket Latestepel-Release.

  2. Führen Sie den folgenden Befehl aus, um Docker zu installieren:

    sudo yum -y install docker-io
    
  3. Um den Docker-Daemon zu starten, rufen Sie service auf :

    sudo service docker start
    
  4. Wenn Sie möchten, dass der Docker-Daemon beim Booten gestartet wird, geben Sie den folgenden Befehl ein:

    sudo chkconfig docker on
    
  5. Um zu überprüfen, ob die Installation erfolgreich abgeschlossen wurde, starten Sie einen Beispiel-Fedora-Container. Dieser Befehl greift automatisch alle fehlenden Bilder auf, führt den Container aus und stellt eine interaktive Bash-Sitzung bereit:

    sudo docker run -i -t fedora /bin/bash
    
  6. Um den Container zu verlassen, geben Sie exit ein .

Was kann ich mit Docker tun?

Docker ermöglicht es Benutzern, ihre Anwendungen und Konfigurationen in leichtgewichtige Images zu packen, um sie als portable Container bereitzustellen.

Hallo Welt

Um einen Docker-Container auszuführen, der „Hello World“ ausgibt, führen Sie den folgenden Befehl aus:

docker run ubuntu /bin/echo hello world

Es sollte hello world zurückgeben .

Dies weist Docker an, eine Reihe von Dingen zu tun:

  1. Wenn das Image (Ubuntu) nicht bereits lokal vorhanden ist, laden Sie es vom Docker-Index herunter.
  2. Erstellen Sie einen neuen Container mit dem Basis-Ubuntu-Image mit einem Read-Write-Dateisystem und einer Netzwerkschnittstelle.
  3. Ordnen Sie dem Container eine IP-Adresse zu; Richten Sie NAT ein, um Datenverkehr zum und vom Container weiterzuleiten.
  4. Führen Sie den Befehl /bin/echo hello world aus , und drucken Sie die Ausgabe.
  5. Nach Abschluss des Hauptprozesses wird der Container beendet.

Schreiben einer Dockerdatei für Nginx

Beim Erstellen eines Images folgt Docker den Anweisungen in einer Datei mit dem Namen Dockerfile . Beachten Sie, dass die Datei Dockerfile heißen muss und alle Dateien oder Ordner, die von der Dockerfile benötigt werden, müssen sich im selben Verzeichnis wie die Dockerfile befinden selbst.

Ausführen eines Programms wie echo in einem Docker-Container ist ziemlich einfach. Bei Programmen, die als Server fungieren, wie Nginx, müssen Sie jedoch sicherstellen, dass das Programm so konfiguriert ist, dass es sich nicht selbst dämonisiert.

Dies ist ein Dockerfile-Beispiel für Nginx:

FROM        ubuntu:12.04
MAINTAINER  Jon Chen "[email protected]"

RUN         echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN         apt-get update
RUN         apt-get install -y nginx

RUN         echo "\ndaemon off;" >> /etc/nginx/nginx.conf
VOLUME      /etc/nginx/sites-enabled
VOLUME      /var/log/nginx

EXPOSE      80
CMD         ["nginx"]

Die Dockerfile-Syntax sieht folgendermaßen aus:

# Comment
INSTRUCTION arguments

Docker durchläuft die Dockerfile-Anweisungen der Reihe nach von oben nach unten. Die erste Anweisung muss sei FROM , das das Basis-Image angibt, aus dem Sie Ihr neues Image erstellen möchten:

FROM ubuntu:12.04

Dadurch wird das offizielle Ubuntu 12.04-Image als Basis-Image festgelegt. Sie werden auch die MAINTAINER-Anweisung verwenden wollen, um den Autor des Bildes zu bestimmen:

MAINTAINER Jon Chen "[email protected]"

Als nächstes das RUN Instruktion führt Befehle auf dem Bild aus und überträgt die Ergebnisse. Jeder Commit wird gespeichert und für die nächste Anweisung verwendet. Zum Beispiel dieses RUN Zeile ersetzt den Inhalt von /etc/apt/sources.list im Bild mit deb http://archive.ubuntu.com/ubuntu precise main universe :

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list

Bei Programmen wie Nginx ist es wichtig, sicherzustellen, dass das Programm nicht als Daemon ausgeführt wird. Das Standardverhalten von Nginx als Daemon besteht darin, Worker-Prozesse abzuspalten und dann den Master-Prozess zu beenden. Da Docker nur die PID für den ursprünglichen Prozess überwacht, wird der Container vorzeitig angehalten, anstatt dauerhaft ausgeführt zu werden. Um die Daemonisierung zu deaktivieren, fügen Sie die Konfigurationsdirektive daemon off zu /etc/nginx/nginx.conf hinzu :

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

Um einen Port innerhalb des Containers der Außenseite des Containers zugänglich zu machen, verwenden Sie die EXPOSE-Anweisung:

EXPOSE 80

Die CMD-Anweisung definiert den Standardbefehl, der ausgeführt wird, wenn der Container gestartet wird. In unserem Beispiel wollen wir Nginx ausführen:

CMD ["nginx"]

Standardmäßig haben Docker-Container keinen dauerhaften Speicher. Um Daten zwischen Containern auszutauschen, verwenden Sie die VOLUME-Funktion:

VOLUME /etc/nginx/sites-enabled
VOLUME /var/log/nginx

Um ein Verzeichnis vom Host auf den Container zu mounten, müssen Sie das Hostverzeichnis, das entsprechende Containerverzeichnis und die Verzeichnisberechtigungen in der Befehlszeile angeben, wenn Sie den Container ausführen:

-v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro].
If "host-dir" is missing, then docker creates a new volume.

Um dieses Image zu erstellen, führen Sie den folgenden Befehl im selben Verzeichnis wie die Dockerfile aus. Sie können mit -t repo/tag auch ein Repository und ein Tag für Ihr Bild angeben :

docker build -t bsdlp/nginx .

Führen Sie den folgenden Befehl aus, um /etc/nginx/sites-enabled hinzuzufügen und /var/log/nginx als Volumes vom Host zum Container, starten Sie den Container als Daemon und stellen Sie Port 80 vom Container als Port 80 auf dem Host bereit:

docker run -d -p 80:80 -v /etc/nginx/sites-enabled:/etc/nginx/sites-enabled -v /var/log/nginx:/var/log/nginx bsdlp/nginx

Weitere Informationen

Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.

  • Leitfaden „Erste Schritte“ von Docker
  • Docker auf GitHub
  • Offizieller Docker-Image-Index

Docker
  1. So installieren Sie Docker unter Ubuntu 16.04

  2. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  3. Docker-Probleme in Ubuntu 20.04?

  4. Docker installieren (Ubuntu)

  5. Wie installiere ich Docker unter Ubuntu 18.04?

So installieren Sie Bitwarden unter Ubuntu 20.04

So installieren Sie Docker unter Ubuntu 20.04, 18.04, 21.04

Portainer mit Docker auf Ubuntu installieren

So installieren Sie Docker unter Ubuntu 14.04

So installieren Sie Docker Compose auf Ubuntu

So installieren Sie Docker unter Ubuntu 18.04