Wie installiere ich Docker-Container unter Linux? (Ubuntu und CentOS)
Veröffentlicht: 2019-08-01 Docker ist zweifellos die beste Container Management Platform
für Ihre Unternehmens- und/oder persönlichen Projektanforderungen.
Warum brauchen wir Docker?
Betrachten Sie dieses einfache Szenario für Ihr Projekt.
- Sie haben eine komplexe Java Enterprise-Anwendung mit mehr als 50 Maven-Abhängigkeiten.
- Sie haben einige weitere lokale Dienstabhängigkeiten.
- Sie haben Ihre eigene Datenbankinstanz, die lokal ausgeführt wird.
- Sie haben mehr als 10 benutzerdefinierte Shell-Skripte, die zum Einrichten Ihrer Umgebung erforderlich sind.
- Sie haben ~ 5 Umgebungsvariablen.
- Sie haben ~5 Autostart-Skripte.
- Und so weiter…
Nun, wenn Sie alle oben genannten Artikel an Ihren Kunden versenden möchten, sind das viele Schritte. Ist es nicht?
Hier kommt Docker ins Spiel.
Einfachheit:
Wie wäre es, wenn Sie alle oben genannten Punkte in single docker image
und zusammenbauen und dieses Image an Ihren Kunden senden? Es ist nur ein single step install
und get ready within few minutes
.
In diesem Tutorial gehen wir die Schritte zur install Docker on Linux
und alle erforderlichen Schritte durch.
Lass uns anfangen:
Schritt 1. Melden Sie sich beim Linux-Host an und überprüfen Sie die Voraussetzung
Docker gibt es in 3 Varianten:
- Docker-Engine – Gemeinschaft
- Docker-Engine – Unternehmen
- Docker-Unternehmen
In diesem Tutorial gehen wir die Schritte zur Installation von Docker Community Edition
durch.
1.1) Melden Sie sich bei Ihrem Linux-Host an.
Ich verwende Digital Ocean Droplet als meinen Linux-Host.
1 2 3 |
bash - 3.2 $ ssh root @ 45.56.94.4 root @ 45.56.94.4 ' s password : Welcome to Ubuntu 19.04 ( GNU / Linux 5.0.0 - 13 - generic x86_64 ) |
1.2) Überprüfen Sie die Linux-Betriebssystemarchitektur:
Sie benötigen eine 64-bit
Architektur.
1 2 3 |
root @ localhost : ~ # arch x86_64 |
1.3) Überprüfen Sie die Kernel-Ebene des Linux-Betriebssystems:
Die Kernel-Ebene sollte größer als 3.0 sein.
1 2 3 |
root @ localhost : ~ # uname -r 5.0.0 - 13 - generic |
Schritt 2. Installieren Sie Docker Community Edition
2.1) Stellen Sie sicher, dass Sie den offiziellen PGP-Schlüssel von Docker zu Ihrem System hinzufügen.
1 2 3 4 |
root @ localhost : ~ # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - OK root @ localhost : ~ # |
2.2) Stellen Sie sicher, dass Sie den richtigen PGP-Schlüssel haben:
1 2 3 4 |
root @ localhost : ~ # sudo apt-key fingerprint 0EBFCD88 | grep 5822 Warning : apt - key output should not be parsed ( stdout is not a terminal ) 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 |
2.3) Stellen Sie sicher, dass Sie Ihr Ubuntu-Betriebssystem auf die neueste Version installieren
Command:
sudo apt-get update
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
root @ localhost : ~ # sudo apt-get update Hit : 1 http : //mirrors.linode.com/ubuntu disco InRelease Get : 2 http : //mirrors.linode.com/ubuntu disco-updates InRelease [97.5 kB] Get : 3 http : //mirrors.linode.com/ubuntu disco-backports InRelease [88.8 kB] Hit : 4 https : //download.docker.com/linux/ubuntu disco InRelease Get : 5 http : //mirrors.linode.com/ubuntu disco-updates/main amd64 Packages [226 kB] Get : 6 http : //security.ubuntu.com/ubuntu disco-security InRelease [97.5 kB] Get : 7 http : //mirrors.linode.com/ubuntu disco-updates/main i386 Packages [194 kB] Get : 8 http : //mirrors.linode.com/ubuntu disco-updates/universe i386 Packages [252 kB] Get : 9 http : //mirrors.linode.com/ubuntu disco-updates/universe amd64 Packages [254 kB] Get : 10 http : //mirrors.linode.com/ubuntu disco-updates/universe Translation-en [80.1 kB] Get : 11 http : //security.ubuntu.com/ubuntu disco-security/main i386 Packages [144 kB] Get : 12 http : //security.ubuntu.com/ubuntu disco-security/main amd64 Packages [173 kB] Get : 13 http : //security.ubuntu.com/ubuntu disco-security/universe amd64 Packages [220 kB] Get : 14 http : //security.ubuntu.com/ubuntu disco-security/universe i386 Packages [217 kB] Get : 15 http : //security.ubuntu.com/ubuntu disco-security/universe Translation-en [55.4 kB] Fetched 2 , 098 kB in 2s ( 1 , 188 kB / s ) Reading package lists . . . Done |
2.4) Richten Sie das neueste stabile Docker-Repository ein
Command:
sudo add-apt-repository „deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable“
1 2 3 4 5 6 7 8 |
root @ localhost : ~ # sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" Hit : 1 http : //mirrors.linode.com/ubuntu disco InRelease Hit : 2 http : //mirrors.linode.com/ubuntu disco-updates InRelease Hit : 3 http : //mirrors.linode.com/ubuntu disco-backports InRelease Hit : 4 https : //download.docker.com/linux/ubuntu disco InRelease Hit : 5 http : //security.ubuntu.com/ubuntu disco-security InRelease Reading package lists . . . Done |
2.5) Installieren Sie Docker
Command:
sudo apt-get install docker-ce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
root @ localhost : ~ # sudo apt-get install docker-ce Reading package lists . . . Done Building dependency tree Reading state information . . . Done The following packages were automatically installed and are no longer required : bridge - utils dns - root - data dnsmasq - base ubuntu - fan Use 'sudo apt autoremove' to remove them . The following additional packages will be installed : aufs - tools containerd . io docker - ce - cli libltdl7 The following packages will be REMOVED : containerd docker . io runc The following NEW packages will be installed : aufs - tools containerd . io docker - ce docker - ce - cli libltdl7 0 upgraded , 5 newly installed , 3 to remove and 101 not upgraded . Need to get 87.9 MB of archives . After this operation , 133 MB of additional disk space will be used . Do you want to continue ? [ Y / n ] Y Get : 1 http : //mirrors.linode.com/ubuntu disco/universe amd64 aufs-tools amd64 1:4.9+20170918-2 [104 kB] Get : 2 http : //mirrors.linode.com/ubuntu disco/main amd64 libltdl7 amd64 2.4.6-10 [38.3 kB] Get : 3 https : //download.docker.com/linux/ubuntu disco/stable amd64 containerd.io amd64 1.2.6-3 [22.6 MB] Get : 4 https : //download.docker.com/linux/ubuntu disco/stable amd64 docker-ce-cli amd64 5:19.03.1~3-0~ubuntu-disco [42.5 MB] Get : 5 https : //download.docker.com/linux/ubuntu disco/stable amd64 docker-ce amd64 5:19.03.1~3-0~ubuntu-disco [22.7 MB] Fetched 87.9 MB in 3s ( 34.9 MB / s ) ( Reading database . . . 83080 files and directories currently installed . ) Removing docker . io ( 18.09.5 - 0ubuntu1 ) . . . '/usr/share/docker.io/contrib/nuke-graph-directory.sh' - > '/var/lib/docker/nuke-graph-directory.sh' Removing containerd ( 1.2.6 - 0ubuntu1 ) . . . Removing runc ( 1.0.0 ~ rc7 + git20190403 . 029124da - 0ubuntu1 ) . . . Selecting previously unselected package aufs - tools . ( Reading database . . . 82836 files and directories currently installed . ) Preparing to unpack . . . / aufs - tools_1 % 3a4.9 + 20170918 - 2_amd64.deb . . . Unpacking aufs - tools ( 1 : 4.9 + 20170918 - 2 ) . . . Selecting previously unselected package containerd . io . Preparing to unpack . . . / containerd . io_1 . 2.6 - 3_amd64.deb . . . Unpacking containerd . io ( 1.2.6 - 3 ) . . . Selecting previously unselected package docker - ce - cli . Preparing to unpack . . . / docker - ce - cli_5 % 3a19.03.1 ~ 3 - 0 ~ ubuntu - disco_amd64 . deb . . . Unpacking docker - ce - cli ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Selecting previously unselected package docker - ce . Preparing to unpack . . . / docker - ce_5 % 3a19.03.1 ~ 3 - 0 ~ ubuntu - disco_amd64 . deb . . . Unpacking docker - ce ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Selecting previously unselected package libltdl7 : amd64 . Preparing to unpack . . . / libltdl7_2 . 4.6 - 10_amd64.deb . . . Unpacking libltdl7 : amd64 ( 2.4.6 - 10 ) . . . Setting up aufs - tools ( 1 : 4.9 + 20170918 - 2 ) . . . Setting up containerd . io ( 1.2.6 - 3 ) . . . Setting up libltdl7 : amd64 ( 2.4.6 - 10 ) . . . Setting up docker - ce - cli ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Setting up docker - ce ( 5 : 19.03.1 ~ 3 - 0 ~ ubuntu - disco ) . . . Installing new version of config file / etc / init . d / docker . . . Installing new version of config file / etc / init / docker . conf . . . Created symlink / etc / systemd / system / multi - user . target . wants / docker . service → / lib / systemd / system / docker . service . Processing triggers for systemd ( 240 - 6ubuntu5 ) . . . Processing triggers for man - db ( 2.8.5 - 2 ) . . . Processing triggers for libc - bin ( 2.29 - 0ubuntu2 ) . . . |

2.6) Überprüfen Sie die Docker-Version
1 2 |
root @ localhost : ~ # docker -v Docker version 19.03.1 , build 74b1e89 |
Schritt 3. Starten Sie Docker und führen Sie Hello World aus
3.1) Einfacher Befehl zum Ausführen von Docker unter Linux
Wie Sie oben sehen, registriert sich Docker während der Installation als Systemdienst: /lib/systemd/system/docker.service
.
1 |
root @ localhost : ~ # sudo systemctl start docker |
3.2) Lassen Sie uns Hello World Docker ziehen und ausführen
Command:
sudo docker run hello-world
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
root @ localhost : ~ # sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest : Pulling from library / hello - world 1b930d010525 : Pull complete Digest : sha256 : 6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f Status : Downloaded newer image for hello - world : latest Hello from Docker ! This message shows that your installation appears to be working correctly . To generate this message , Docker took the following steps : 1. The Docker client contacted the Docker daemon . 2. The Docker daemon pulled the "hello-world" image from the Docker Hub . ( amd64 ) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading . 4. The Docker daemon streamed that output to the Docker client , which sent it to your terminal . To try something more ambitious , you can run an Ubuntu container with : $ docker run - it ubuntu bash Share images , automate workflows , and more with a free Docker ID : https : //hub.docker.com/ For more examples and ideas , visit : https : //docs.docker.com/get-started/ root @ localhost : ~ # |
Der obige Befehl zieht ein Docker-Image und Sie können die Docker Hello World-Anwendung ausführen.
Schritt 4. Wie überprüfe ich Docker-Images/Repositorys?
Vor dem Ausführen der Hello World App:
1 2 3 4 5 6 |
root @ localhost : ~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE keyansoftwares / logviewersvc latest 04612d6a457d 2 months ago 144MB keyansoftwares / logreadagent latest 0385a757deb5 2 months ago 138MB keyansoftwares / logreadagent < none > d75a02abb278 2 months ago 369MB grafana / grafana latest f96bf1723e2a 3 months ago 245MB |
Nach dem Ausführen der Hello World App:
Wie Sie hier sehen, sehen Sie unten das neue Repository hello-world
1 2 3 4 5 6 7 |
root @ localhost : ~ # docker images REPOSITORY TAG IMAGE ID CREATED SIZE keyansoftwares / logviewersvc latest 04612d6a457d 2 months ago 144MB keyansoftwares / logreadagent latest 0385a757deb5 2 months ago 138MB keyansoftwares / logreadagent < none > d75a02abb278 2 months ago 369MB grafana / grafana latest f96bf1723e2a 3 months ago 245MB hello - world latest fce289e99eb9 7 months ago 1.84kB |
Glückwünsche. Sie sind bereit. Sie haben Ihre Linux-Umgebung für Docker eingerichtet, Docker installiert und auch Ihre erste Docker-Anwendung ausgeführt.
Extraschritt:
Wir empfehlen Ihnen, diese Schritte nach der Installation zu befolgen.
Wie starte ich Docker nach dem Neustart der VM automatisch?
Command:
sudo systemctl docker aktivieren
1 2 3 4 |
root @ localhost : ~ # sudo systemctl enable docker Synchronizing state of docker . service with SysV service script with / lib / systemd / systemd - sysv - install . Executing : / lib / systemd / systemd - sysv - install enable docker |
Führen Sie einfach den obigen Befehl aus und Ihr Docker wird automatisch gestartet, wenn Sie die VM/den Host das nächste Mal neu starten.
Lassen Sie mich wissen, wenn Sie auf ein Problem mit den oben genannten Befehlen und auf ein Docker-Problem stoßen.
Möchten Sie Docker auf CentOS installieren?
Ersetzen Sie einfach Step-2
oben durch die folgenden Schritte:
1 2 3 4 5 6 7 8 9 |
root @ localhost : ~ # sudo yum install -y yum-utils device-mapper-persistent-data lvm2 root @ localhost : ~ # sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo root @ localhost : ~ # sudo yum install docker-ce docker-ce-cli containerd.io root @ localhost : ~ # sudo systemctl start docker root @ localhost : ~ # sudo docker run hello-world |