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

Was ist Docker, Unterschied zwischen Docker und VM, Installation von Docker und seine Verwendung

Zuvor haben wir die Installationen von Hypervisoren wie Xen und Cloud-Middleware wie Openstack gesehen. Vor kurzem hat sich eine neue Technologie namens Docker-Container zum heißesten Trend in der Anwendungsentwicklung entwickelt. In diesem Artikel werden wir sehen, was genau ein Docker ist, seine Unterschiede zu virtuellen Maschinen, die Installation von Docker und seine Verwendung.

Was ist Docker?

Docker ist ein Container, der eine Software in ein vollständiges Dateisystem verpackt, das alles enthält, was es zum Ausführen benötigt:Code, Laufzeit, Systemtools, Systembibliotheken – alles, was Sie auf einem Server installieren können. Container werden auf Betriebssystemebene virtualisiert, wodurch sie bei der Nutzung von Systemressourcen effizienter sind als Hypervisoren. Es gibt viele Linux-Container-Technologien wie LXC, Docker usw.,

Was ist der Unterschied zwischen Docker und einer virtuellen Maschine?

Mit einem anderen architektonischen Ansatz sind Container viel tragbarer und effizienter, obwohl sie eine ähnliche Ressourcenisolation aufweisen. Das folgende Bild zeigt den architektonischen Unterschied zwischen einem Container und virtuellen Maschinen.

Virtuelle Maschinen Container 1. Benötigt einen Hypervisor und ein vollständiges integriertes Betriebssystem 1. Kommuniziert mit dem Host-Kernel 2. Größerer Fußabdruck (RAM und Speicherplatz) 2. Kleinerer Platzbedarf (kein RAM und Differenzspeicher) 3. VMs verbrauchen Speicherplatz für jede Instanz ~1,2 GB 3. Verbraucht sehr wenig Speicherplatz ~2,5 MB 4. Schwerer 4. Leicht 5. Die Startzeit virtueller Maschinen liegt in der Größenordnung von Minuten 5. Die Startzeit liegt in der Größenordnung von Sekunden 6. Die Bereitstellung ist schwierig. 6. Einfache Bereitstellung mit minimalen Anforderungen zum Ausführen der Anwendung 7. Langsamer 7. Schneller 8. Sicherheitsprobleme des laufenden Betriebssystems 8. Auf Anwendungen beschränkte Sicherheitsprobleme

Wie installiere ich einen Docker-Container auf CentOS 7?

Die neueste offizielle Version von Docker ist v1.10. Die folgenden Anweisungen beschreiben die Installation von Docker Container auf einem CentOS 7-Server. Melden Sie sich als Root beim CentOS 7-Server an und führen Sie die folgenden Schritte aus.

Schritt 1: Als Best Practice aktualisieren wir das System mit yum wie unten gezeigt:

# yum -y update

Schritt 2: Standardmäßig ist Docker im CentOS-Extra-Repository enthalten. Wenn Sie eine aktuellere Version von Docker verwenden möchten, führen Sie den folgenden Befehl aus, um es zum Repository hinzuzufügen.

# tee /etc/yum.repos.d/docker.repo <<-'EOF'
 > [dockerrepo]
 > name=Docker Repository
 > baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 > enabled=1
 > gpgcheck=1
 > gpgkey=https://yum.dockerproject.org/gpg
 > EOF
 [dockerrepo]
 name=Docker Repository
 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 enabled=1
 gpgcheck=1
 gpgkey=https://yum.dockerproject.org/gpg

Schritt 3: Installieren Sie das Docker-Paket und die Docker-Registrierung. Die Docker-Registrierung ist eine zustandslose, hochgradig skalierbare serverseitige Anwendung, die Docker-Images speichert und verteilt.

# yum -y install docker docker-registry

Schritt 3: Starten Sie nach erfolgreicher Installation von Docker den Docker-Dienst.

systemctl start docker.service

Schritt 4: Stellen Sie sicher, dass der Docker-Dienst beim Booten mit dem folgenden Befehl startet:

#  systemctl enable docker.service

Schritt 5: Überprüfen Sie den Docker-Dienst

systemctl status docker.service
docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago
 Docs: http://docs.docker.com
 Main PID: 30108 (docker)
 CGroup: /system.slice/docker.service
 ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04
 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0"
 Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e"
 Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n"
 Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0"
 Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e"
 Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n"
 Hint: Some lines were ellipsized, use -l to show in full.

Wie verwende ich Docker?

Schritt 1: Laden Sie einen Docker-Container herunter. Führen Sie den folgenden Befehl aus, um das neueste stabile offizielle CentOS-Image zu erhalten:

# docker pull centos

Der obige Befehl ruft die neueste stabile Centos-Version ab. So ziehen Sie eine andere Version des CentOS-Images, beispielsweise CentOS 6:

# docker pull centos:centos6

Schritt 2: So überprüfen Sie, ob die Bilder lokal heruntergeladen wurden:

# docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB

Schritt 3: So listen Sie alle verfügbaren heruntergeladenen Bilder auf:

# docker images

Wie man einen Docker-Container betreibt

Schritt 1: Führen Sie einen einfachen Centos-Container mit einer Bash-Shell aus. Hier, -i Option hängt stdin an und stdout , -t weist ein tty zu .

# docker run -i -t centos /bin/bash

Das ist es! Jetzt landen Sie auf einer Bash-Shell in einem Centos-Docker-Container.

Befehle zum Arbeiten mit Docker-Containern

1. So trennen oder trennen Sie sich vom Container, ohne den Container herunterzufahren:

Ctrl-p + Ctrl-q

2. Viele Container sind bereits von der Community verfügbar. So listen Sie die Container der Community auf:

# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. 2042 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK]
docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK]
...
...
# docker search ubuntu
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK]
docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK]
docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK]
...
...

3. Alle Container auflisten

# docker ps -a

4. Nur laufende Container auflisten

# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare

5. Stoppen Sie einen Container
Beziehen Sie die Container-ID aus der obigen Auflistung und verwenden Sie sie, um den entsprechenden Container zu stoppen:

# docker stop 4293c8265d00

6:Starten Sie den Docker-Dienst neu

# systemctl restart docker.service

Docker
  1. Was ist der Unterschied zwischen arm64 und armhf?

  2. Was ist der Unterschied zwischen fsck und e2fsck?

  3. Was ist der Unterschied zwischen adduser und useradd?

  4. Was ist der Unterschied zwischen ls und l?

  5. Was ist der Unterschied zwischen `su -` und `su --login`?

Docker:Installation und grundlegende Nutzung unter Ubuntu 16.04

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen COPY- und ADD-Anweisungen in Dockerfile?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Unterschied zwischen Systemaufruf und Bibliotheksaufruf?