Docker grundlegende Installation und Bereitstellung

Docker

1 Docker Profil

1.1 Was ist Virtualisierung

In dem Computer, Virtualisierung (englisch: Virtualisierung) ist eine Ressource-Management-Technologie, die verschiedenen Einheiten die Ressourcen des Computers sind, wie Server, Netzwerk, Speicher und Speicher usw., abstrakt zu sein, nach der Umwandlung präsentierte die Inter Einheit Struktur zu brechen Hindernisse können nicht geschnitten werden, so dass der Benutzer als das Original besser konfigurieren, kann diese Ressourcen zu nutzen. Viele dieser neuen virtuellen Ressourcen ist nicht die Art und Weise der vorhandenen Mittel einzurichten, geographische oder physikalische Konfiguration beschränkt ist. Virtualisierte Ressourcen bezeichnet im Allgemeinen Rechenleistung und Datenspeicherung.

In der aktuellen Produktionsumgebung wird die Virtualisierungstechnologie hauptsächlich Hochleistungskapazitäten physische Hardware zu lösen und die alte alte Hardwarekapazität ist zu gering Reorganisation Wiederverwendung, Transparenz physische Hardware des unter der Verwendung von physikalischen Hardware-Ressourcen zu maximieren in vollem Umfang nutzen

Viele Arten von Virtualisierungstechnologien, wie zum Beispiel: Software-Virtualisierung und Hardware-Virtualisierung, Speicher-Virtualisierung, Netzwerk-Virtualisierung (VIP), Desktop-Virtualisierung, Service-Virtualisierung, virtuelle Maschinen und so weiter.

1.2 Was ist der Docker

Docker ist ein Open - Source - Projekt, Anfang 2013 geboren wurde, war es zunächst ein Amateur - Projekt interne dotCloud Unternehmen. Es basiert auf Googles Markteinführung der Go Sprache. Projekt schloss sich später der Linux Foundation, die Apache - 2.0 - Protokoll - Compliance, Projektcode bei GitHub Wartungsarbeiten an.

Hier hat Bild einfügen Beschreibung

Docker, da die Open-Source-große Aufmerksamkeit und Diskussion, dass dotCloud Unternehmen später Docker Inc. umbenannt wurden Redhat hat seine Unterstützung Docker RHEL6.5 konzentriert in, Google wird auch in seinen PaaS-Angeboten weit verbreitet.

Docker Projektes hat mich zum Ziel ist es, eine leichte Betriebssystem-Virtualisierungslösung zu erreichen. Docker ist die Grundlage für Linux Container (LXC) Technologie.

Auf der Grundlage des LXC Docker war weiteres Paket, so dass die Benutzer nicht über Container-Management benötigt Pflege, den Betrieb einfacher zu machen. Benutzeraktion Docker-Container genau wie Sie eine schnelle leichte virtuelle Maschine so einfach.

Warum Docker?

(1) schnell Chips.

Benutzer müssen nur ein paar Minuten, Sie Ihr eigenes Programm setzen können „Docker von.“ Docker ist abhängig von der „copy-on-write“ (copy-on-write) -Modell, die Änderungen an der Anwendung sehr schnell, kann gesagt werden, zu erreichen „aufgrund von Herz, dass die Codeänderung“ Reich.

     随后,就可以创建容器来运行应用程序了。大多数Docker容器只需要不到1秒中即可启动。由于去除了管理程序的开销,Docker容器拥有很高的性能,同时同一台宿主机中也可以运行更多的容器,使用户尽可能的充分利用系统资源。

Logische Klassifizierung (2) Aufgaben

Verwenden Docker, die Entwickler benötigen, nur um die Anwendung in dem Behälter läuft, besorgt zu sein, und das Betriebs- und Wartungspersonal muß nur besorgt sein, wie man die Behälter zu verwalten. Docker Design Zweck ist es, die Produktionsumgebung Konsistenz Entwickler Code schreiben Entwicklungsumgebung und Anwendungen zu verbessern eingesetzt werden. Wodurch die Art von „Entwicklung alles normal ist, sicherlich den Betrieb und die Wartung Probleme (die Testumgebung ist normal, auf der Linie aus der Frage ankommt, ist sicherlich die Frage der Betrieb und Wartung).“

(3) ein schneller und effizienter Entwicklungs-Lebenszyklus

Eines der Ziele ist es, den Code von Docker Entwicklung zu verkürzen, bis zur Bereitstellung testen, on-line-Betriebszyklus, so dass Ihre Anwendungsportabilität hat, leicht zu bauen und eine gute Zusammenarbeit. (Beliebte Sache zu sagen, ist Docker wie eine Schachtel, die eine Menge Gegenstände halten kann, wenn Sie diese Objekte benötigen, können Sie die große Kiste direkt nehmen weg, ohne die Notwendigkeit für ein Stück aus dem Karton entnommen.)

(4) die Förderung der Verwendung von Service-Oriented Architecture

Docker fördert auch serviceorientierte Architektur und Mikroarchitektur Dienstleistungen. Docker einen einzelnen Behälter empfiehlt nur eine Anwendung oder einen Prozess ausgeführt, so dass ein verteiltes Anwendungsmodell bilden, in diesem Modell, Anwendung oder Dienst als eine Reihe von miteinander verbundenen im Innern des Behälters dargestellt werden, so dass das verteilte Bereitstellung App, Erweiterung oder Debuggen von Anwendungen sind sehr einfach, aber auch die Selbstbeobachtung des Programms verbessern. (Natürlich können Sie mehrere Anwendungen in einem Container ausgeführt wird)

1.3 Virtual Machine Container und vergleichen

Das untere Bild der Unterschiede zwischen Docker vergleicht und traditionelle Art der Virtualisierung, virtualisiert Behälter sichtbar sind, die direkte Wiederverwendung der lokale Host-Betriebssystem, während die traditionelle Art und Weise in Hardware-Ebene auf der Betriebssystemebene implementiert ist.

Hier hat Bild einfügen Beschreibung

Verglichen mit der traditionellen virtuellen Maschine wird Docker Vorteil als schneller Start reflektiert, ein kleines Volumen nehmen.

1.4 Docker Komponenten

1.4.1 Docker Server und Client

Docker ist ein Client - Server (C / S) Architektur Programm. Der Client nur auf Docker Docker-Server oder Daemon benötigt eine Anforderung, der Server oder Daemon wird die ganze Arbeit machen und gibt das Ergebnis. Docker stellt eine Befehlszeilenprogramm Docker und einen Satz von RESTful API. Sie können Docker Dämon und Client auf demselben Host ausgeführt werden, können Sie auch vom lokalen Client verbinden Remote-Docker Docker-Daemon auf einer anderen Host-Maschine laufen zu lassen.

Hier hat Bild einfügen Beschreibung

1.4.2 Docker Spiegelbehälter

Mirroring ist der Eckpfeiler der Docker ist. Benutzer können ihre eigenen Container-basierte Spiegelung auszuführen. Spiegel auch Docker „build“ Teil des Lebenszyklus. Spiegelschicht-Struktur basiert auf einem kombinierten Dateisystem schrittweise eine Reihe von Anweisungen aufzubauen. Zum Beispiel:

Fügen Sie eine Datei;

Ausführen eines Befehls;

Öffnen Sie ein Fenster.

Der Behälter kann auch als gespiegelt wird „Quellcode“. Spiegel sehr klein, sehr „portable“, die einfache Teilen, gespeichert und aktualisiert.

Docker können Sie bauen und deploy Container helfen, die Sie gerade benötigen, um Ihre eigene Anwendung oder einen Dienst kann in Behälter verpackt werden. Container werden gespiegelte Boote kann das Schiff auf einem oder mehr Prozesse laufen. Wir können glauben, dass der Spiegel eingebaut ist oder Docker Stadium des Lebenszyklus verpackt, und der Behälter gestartet oder die Umsetzungsphase. Basierend auf einem gespiegelten Boot-Containern, sobald der Behälter die Inbetriebnahme abgeschlossen ist, werden wir in der Lage sein, um den Behälter anzumelden Installation von Software oder Dienstleistungen, die sie benötigen.

So Docker Behälter ist:

Ein Bildformat;

Einige Standard-Betriebs-Säule;

Eine Ausführungsumgebung.

Docker stützt sich auf das Konzept eines Standardcontainers. Die Standard-Containerladung auf der ganzen Welt geliefert, Dockarbeiter, dieses Modell zu ihrem eigenen Design verwenden, der einzige Unterschied ist: Containertransport von Gütern, den Transport und Docker Software.

     和集装箱一样,Docker在执行上述操作时,并不关心容器中到底装了什么,它不管是web服务器,还是数据库,或者是应用程序服务器什么的。所有的容器都按照相同的方式将内容“装载”进去。

     Docker也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机中。像标准集装箱一样,Docker容器方便替换,可以叠加,易于分发,并且尽量通用。

1.4.3 Registry (Registry)

Registry Docker mit Benutzern speichern das Bild aufgebaut. Registry ist in öffentliche und private zwei Arten unterteilt. Docker Unternehmen betreibt ein öffentliches Register der Docker Hub genannt. Benutzer können für ein Konto bei Docker Hub anmelden, teilen und speichern ihre eigenen Bild (Anmerkung: Docker Hub Riese langsam zum Download Bild, können Sie Ihre eigenen Registry bauen).

https://hub.docker.com/

2 Docker Installation und Inbetriebnahme

2.1 Installation Docker

Docker offiziell empfohlen, in Ubuntu zu installieren, da Docker auf Ubuntu-Version basiert, aber Probleme entstehen allgemeine Docker Ubuntu ist das erste Update oder Patch. In vielen Versionen von CentOS ist nicht von einigen der neueste Patch-Update-Paket unterstützt.

Da wir die Lernumgebung verwenden, ist es CentOS, so hier wir Docker auf CentOS installiert. Hinweis: Es wird empfohlen, mindestens CentOS7.x Version zu installieren, in CentOS6.x Version, müssen Sie unterstützen keine Updates installieren, bevor Sie eine Menge anderer Umwelt- und Docker viele Patches installieren.

Bitte Direktmontage Lehrplan Unterstützung Centos7.x Spiegel

(1) yum Update auf das neueste Paket

sudo yum update

(2) erfordern Installationspaket, yum-UTIL liefern yum-config-Manager-Funktion, sind die anderen zwei abhängige Device Mapper getrieben

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

(3) Satz yum-Source-Cloud Ali

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(4) montiert Andockfensters

sudo yum install docker-ce

(5) Nachdem die Version anzeigen Docker Installation

docker -v

2.2 Set Spiegel ustc

ustc ist ein Veteran der Dienstleister Linux-Spiegels, und so weit in Ubuntu 5.04-Version, wenn im Einsatz. Andockfensters Spiegel Beschleuniger ustc Geschwindigkeit schnell. Einer der Vorteile ustc Docker Spiegels besteht keine Notwendigkeit zu registrieren, ist ein echter öffentlicher Dienst.

https://lug.ustc.edu.cn/wiki/mirrors/help/docker

Bearbeiten Sie die Datei:

vi /etc/docker/daemon.json  

Geben Sie Folgendes in der Datei:

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

2.3 Docker Start und Stopp

systemctl Befehl ist der Befehl Systemdienste - Manager

Starten Sie Docker:

systemctl start docker

Stop-Docker:

systemctl stop docker

Restart Docker:

systemctl restart docker

Sehen Sie Docker Status:

systemctl status docker

Boot:

systemctl enable docker

Ansicht Docker Zusammenfassung Informationen

docker info

Ansicht Docker-Hilfe

docker --help

3 Allgemeine Befehle

3.1 Spiegelung Befehl

3.1.1 Spiegel

docker images

REPOSITORY: Bildname

TAG: Image-Tag

IMAGE-ID: ID-Spiegelung

ERSTELLT: Erstellungsdatum gespiegelt (nicht der Erwerbszeitpunkt des Spiegels)

SIZE: Bildgröße

Diese Bilder werden in den Host-Docker / var / lib / Docker Verzeichnis gespeichert

3.1.2 Suchspiegel

Wenn Sie das Bild finden müssen Sie aus dem Netzwerk wollen, können Sie mit dem folgenden Befehl suchen

docker search 镜像名称

Name: Lager-Name

BESCHREIBUNG: Spiegel Beschreibung

STARS: Benutzerbewertung, ein Spiegel der Reaktions Popularität

OFFIZIELL: Sind offizielle

AUTOMATISIERE: automatisch aufzubauen, was darauf hinweist, dass der Spiegel automatisch Erstellungsprozess durch den Hub erzeugt Docker

3.1.3 Pull-Spiegelung

Ziehen Spiegelbild von der zentralen auf die lokale Repository heruntergeladen

docker pull 镜像名称

Zum Beispiel möchte ich centos7 Spiegel zum Download

docker pull centos:7

3.1.4 entfernen, um den Spiegel

Spiegel Spiegel ID löschen Presse

docker rmi 镜像ID

Löschen Sie alle Spiegel

docker rmi `docker images -q`

3.2 schiffsbezogene Befehle

3.2.1 View-Container

View-Container Lauf

docker ps

Alle Behälter

docker ps –a

Sehen Sie sich den letzten Lauf des Behälters

docker ps –l

Prüfstopp Behälter

docker ps -f status=exited

3.2.2 Erstellen und Startbehälter

Erstellen Sie einen benutzerdefinierten Container Parameter:

Erstellen Sie einen Container-Befehl: Docker Lauf

-I: zeigt den Betriebsbehälter

-t: ein hinterer Container beginnt seine Befehlszeile eingeben. Nach Zugabe dieser beiden Parameter wird das Schiff der Lage sein Protokoll in erstellen. Das ist ein Pseudo-Terminal zugeordnet.

-name: benannte Container erstellt.

-v: steht für die Verzeichnis-Zuordnungsbeziehung (ersteres ist das Host-Verzeichnis, das in ein Verzeichnis auf dem Host zugeordnet ist), können Sie mehr -v mehrere Verzeichnisse oder Dateizuordnungen tun. Hinweis: Es ist das Verzeichnis für die Zuordnung ist, die Änderungen auf dem Host und dann den Behälter zu teilen.

-d: Lauf hinter dem Parameter -d einen Wächter des Behälters schafft nicht automatisch protokollierte Behälter nach (dieser Behälter im Hintergrund erzeugt wird, das Hinzufügen -i -t, wenn nur zwei Parameter, wird es automatisch nach der Erstellung gehen Container).

-p: Abbilden des Port, ist die erstere ein Host-Port, der in dem Anschluss des Behälters zugeordnet ist. Sie können mehr -p Port-Mapping verwenden, mehr zu tun

Erstellen Sie einen Behälter (1) im interaktiven Modus

docker run -it --name=容器名称 镜像名称:标签 /bin/bash

Dann sehen wir den Befehl ps, können Sie den Start des Schiffes sehen gefunden wurde, Zustand Zustand starten

Verlassen Sie den aktuellen Container

exit

(2) schaffen den Container Typ-Schutzmodus:

docker run -di --name=容器名称 镜像名称:标签

Einloggen Hüterin Container Möglichkeiten:

docker exec -it 容器名称 (或者容器ID)  /bin/bash

3.2.3 Stopp und Start des Behälters

Stoppen Sie den Behälter:

docker stop 容器名称(或者容器ID)

Start Behälter:

docker start 容器名称(或者容器ID)

3.2.4 Kopieren von Dateien

Sie können den Befehl cp verwenden, wenn wir die Datei in den Behälter kopieren müssen

docker cp 需要拷贝的文件或目录 容器名称:容器目录

Dateien können auch aus dem Container kopiert werden

docker cp 容器名称:容器目录 需要拷贝的文件或目录

3.2.5 Verzeichnis montiert

Wenn wir einen Container erstellen können, werden die Container - Verzeichnis in dem Verzeichnis - Host zugeordnet, so dass wir die Host - Datei in ein Verzeichnis , um den Behälter zu beeinflussen ändern können.
Erstellen Sie einen Container Add -v Parameter zurück an den Host - Verzeichnis: Behälter, zum Beispiel:

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7

Wenn Sie ein Multi-Level-Verzeichnis, nicht genügend Berechtigungen Prompt teilen können angezeigt werden.

Dies liegt daran, das Sicherheitsmodul selinux CentOS7 Autorität des Verbots, und wir müssen Parameter hinzufügen --privileged = true, das Problem zu lösen, ohne die Erlaubnis Verzeichnis gemountet

3.2.6 IP-Adresse anzeigen Container

Wir können das Schiff sehen eine Vielzahl von Daten den folgenden Befehl ausführen

docker inspect 容器名称(容器ID) 

Sie können auch den folgenden Befehl, um die direkte Ausgabe direkte IP-Adresse durchführen

docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)

3.2.7 Löschbehälter

Entfernt die angegebenen Container:

docker rm 容器名称(容器ID)

4 Anwendungsbereitstellung

4.1 MySQL Einsatz

(1) Ziehen Spiegel mysql

docker pull centos/mysql-57-centos7

(2) Erzeugen der Behälter

docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

Die -p port mapping, Port-Mapping-Format Host: Port Behälter Laufzeit

-e Fügen Sie die Umgebungsvariable MYSQL_ROOT_PASSWORD im Namen der Login-Passwort des Root-Benutzers

(3) Remote-Login-mysql

Anschließen des Host-IP, wie angegeben Port 33306

4.2 tomcat Einsatz

(1) Spiegel Pull

docker pull tomcat:7-jre7

(2) Erzeugen der Behälter

Erstellen Sie einen Container -p die Adresse Mapping zeigt

docker run -di --name=mytomcat -p 9000:8080 
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7

4.3 Nginx Einsatz

(1) Spiegel Pull

docker pull nginx

(2) Erstellen Nginx Behälter

docker run -di --name=mynginx -p 80:80 nginx

4.4 Redis Einsatz

(1) Spiegel Pull

docker pull redis

(2) Erzeugen der Behälter

docker run -di --name=myredis -p 6379:6379 redis

5 Migration und Sicherung

Bild Vorratsbehälter 5.1

Wir können den folgenden Befehl ein Schiff für den Spiegel speichern

docker commit mynginx mynginx_i

5.2 Image-Backup

Wir können mit dem folgenden Befehl als tar-Dateien speichern Sie das Bild

docker  save -o mynginx.tar mynginx_i

5.3 Bildwiederherstellung und Migration

Zuerst entfernten wir mynginx_img Spiegel und führen Sie dann den Befehl wiederhergestellt werden

docker load -i mynginx.tar

-I Eingabedatei

Nach wieder Spiegel ausführen, können Sie das Bild sehen, wird gestellt

6 Dockerfile

6.1 Was ist Dockerfile

Dockerfile Skript ist eine Reihe von Befehlen und Parametern besteht diese Befehle an die Bildbasis und schließlich ein neues Bild erstellen.

1. Für Entwickler: bietet eine konsistente Entwicklungsumgebung für das Entwicklungsteam;
2, für die Tester: Sie haben ein direktes Spiegelbild aufgebaut nehmen können , wenn ein neues Bild von Dockerfile Datei zu entwickeln oder bauen beginnen mit der Arbeit;
3, für den Transport und Wartungspersonal: zum Zeitpunkt der Bereitstellung, ermöglicht eine nahtlose Migration von Anwendungen.

6.2 Allgemeine Befehle

Befehl Wirkung
VON image_name: tag Welche definiert die Verwendung des Grundbildes, um den Prozess des Aufbaus zu starten
MAINTAINER user_name Haftungsausschluss Spiegel Schöpfer
ENV Schlüsselwert Set Umgebungsvariablen (Sie können mehrere schreiben)
Führen Sie den Befehl aus Dockerfile ist ein Kernteil (Sie können mehrere schreiben)
ADD source_dir / Datei DEST_DIR / Datei Kopieren Sie die Datei auf dem Host des Behälters, wenn es sich um eine komprimierte Datei ist, wird es automatisch extrahieren nach der Replikation
COPY source_dir / Datei DEST_DIR / Datei Und wie ADD, aber wenn es nicht eine komprimierte Datei und entpacken
WORKDIR path_dir Stellen Sie das Arbeitsverzeichnis

6.3 mit einem Skript einen Spiegel erstellen

Schritte:

(1) Erstellen Sie ein Verzeichnis

mkdir –p /usr/local/dockerjdk8

(2) Download jdk-8u171-linux-x64.tar.gz und an den Server (Virtual Machine) hochgeladen im Verzeichnis / usr / local / dockerjdk8 Verzeichnis

(3) eine Datei Dockerfile vi Dockerfile

#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER ITCAST
#切换工作目录
WORKDIR /usr
RUN mkdir  /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

(4) Konstruktion des Spiegels Run

docker build -t='jdk1.8' .

Notieren Sie sich die Rückseite der Räume und die Punkte, nicht auslassen

(5), ob einen vollständigen Spiegel zu etablieren

docker images

7 Docker private Lager

7.1 Privatlager einrichten und Konfiguration

(1) Pull private Lager Bild (dieser Schritt weggelassen)

docker pull registry

(2) Starten private Containerlager

docker run -di --name=registry -p 5000:5000 registry

(3) öffnen Sie den Browser und geben Sie die Adresse http://192.168.184.141:5000/v2/_catalog siehe {"repositories":[]}Darstellung der privaten Lager- und baut ein erfolgreicher Inhalt leer ist

(4) modifiziertes daemon.json

vi /etc/docker/daemon.json

Fügen Sie den folgenden Inhalt, speichern und zu beenden.

{"insecure-registries":["192.168.184.141:5000"]} 

Dieser Schritt ermöglicht Docker Vertrauen für private Lageradresse

(5) Restart Docker-Service

systemctl restart docker

7.2 Mirroring hochgeladen zu einem privaten Lager

(1) Dieses private Spiegelbild Lager markiert

docker tag jdk1.8 192.168.184.141:5000/jdk1.8

(2) Behälter wieder zu starten PW

docker start registry

(3) etikettiertes Bild Hochladen

docker push 192.168.184.141:5000/jdk1.8
Veröffentlicht 50 Originalarbeiten · erntete Lob 21 · Ansichten 3706

Ich denke du magst

Origin blog.csdn.net/wmlwml0000/article/details/104626233
Empfohlen
Rangfolge