Hier sind ein paar grundlegende Docker-Befehle:
Siehe auch:https://github.com/wsargent/docker-cheat-sheet
Installieren der neuesten Docker-Umgebung unter Linux:
curl -sSL https://get.docker.com/ | sh
Starten Sie das Docker-Terminal in OSX
bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'
Info: Containernamen ohne '/' im Namen beziehen sich auf einfache Vorlagen für öffentliche Container
Containernamen mit einem '/' beziehen sich auf Benutzercontainer im Format:Benutzername/BasicContainer
Containernamen mit einem ':' beziehen sich auf ein Tag, das normalerweise als Subversion von Basis-/Benutzercontainern verwendet wird
Suchen Sie nach Bildern im Internet-Docker-Repositorydocker search ubuntu
Laden Sie ein Docker-Image aus dem Internet in das lokale Repository herunterdocker pull ubuntu:14.04
Lokale Docker-Images auflisten:docker images
Führen Sie ein selbst erstelltes Image (myname/ubuntu:tmpl_1) im Hintergrund aus und geben Sie dem Container den Namen MyUbuntudocker run -itd --name=MyUbuntu myname/ubuntu:tmpl_1
An einen Container anhängen, um darin zu arbeiten (2 x Enter drücken, um danach bash zu erhalten)docker attach MyUbuntu
Um einen Container zu verlassen, ohne dass er automatisch gestoppt wird:CTRL-P + CTRL-Q
Wenn ein ^D (oder Exit-Befehl) in einer Container-Bash ausgegeben wird, wird der Container dann gestoppt. Um es neu zu starten, starten Sie zBdocker start MyUbuntu
Listen Sie die laufenden Container aufdocker ps
Auflisten aller Docker-Container (laufend und gestoppt)docker ps -a
Hinweise zum Ausführen von Containern:docker run -t -i
→ kann mit ^P^Q gelöst und mit docker Attachdocker run -i
wieder angefügt werden → kann nicht mit ^P^Q gelöst werden; unterbricht stdindocker run
→ kann nicht mit ^P^Q gelöst werden; kann SIGKILL-Client; kann mit Docker Attach erneut angefügt werden
FEHLERBEHEBUNG:
1) Wenn Sie diese Fehlermeldung erhalten, nachdem Sie einen Docker-Befehl gegeben haben:Error response from daemon: client is newer than server (client API version: x.xx, server API version: y.yy)
Führen Sie einfach den folgenden Befehl aus, um ihre Versionen zu synchronisieren:docker-machine upgrade
Erstellen eines neuen lokalen Docker-Images aus einem öffentlich (Internet) abgerufenen Image
#### Die COMMIT-Methode ####
Führen Sie den Container basierend auf diesem Image ausdocker run -t -i ubuntu:14.04 /bin/bash
Hinweis:Merken Sie sich die Container-ID, die in der Bash-Eingabeaufforderung steht (wird benötigt, um eine neue basierend auf dieser zu erstellen)
zB. root@ba7cbe2cd3ce:/# (ba7cbe2cd3ce ist die Container-ID)
Installieren Sie die gewünschten Softwarepakete (apt-get update &&apt-get install …. )
zB. apt-get update &&apt-get -y upgrade; apt-get install mc ssh fail2ban nmap ngrep iftop iotop htop
Wenn Sie fertig sind, stoppen Sie den Container, indem Sie die Verbindung zur Bash mitexit or ^D
trennen
Speichern Sie nun das neue Image lokal:docker commit -m "My special container template" -a "My Name" ba7cbe2cd3ce myname/ubuntu:v001
Dadurch wird der geänderte Container lokal als neues Image mit dem Namen:myname/ubuntu:v001
Zur Überprüfung:docker images
gespeichert
#### Die 'Dockerfile'-Methode
Erstellen Sie ein Verzeichnis, in dem Sie eine spezielle Datei namens Dockerfile
erstellen, in die die Anweisungen zum Erstellen des neuen Images geschrieben werden.mkdir ubuntu_template_001
cd ubuntu_template_001
touch Dockerfile
mcedit Dockerfile
————– Inhalt —————-# This is a comment
FROM ubuntu:14.04
MAINTAINER My Name <mmyname @mydomain.com>
RUN apt-get update && apt-get install -y mc ssh fail2ban nmap ngrep iftop iotop htop
RUN apt-get -y install postfix
– Speichern Sie die Datei und führen Sie dann den folgenden Befehl aus, um das Image zu erstellen:docker build -t myname/ubuntu_template_001 .
Hinweis:Das '.' am Ende des Befehls gibt an, wo sich die Docker-Datei befindet
Alle Ausgaben der Installation und die Image-ID werden ganz am Ende wie folgt angezeigt:
—> 8578743d7b30
– Wir werfen einen Blick auf alle erstellten Images:docker images
Ergebnis:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 8578743d7b30 3 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 20 minutes ago 318.6 MB
– Wir sehen, dass das Image mit der ID 8578743d7b30 weder einen Namen noch ein Tag hat.
Jetzt geben wir ihm einen Namen:tagdocker tag 8578743d7b30 myname/ubuntu:v002
– Überprüfen Sie die Bilderliste erneut:docker images
Ergebnis: REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myname/ubuntu v002 8578743d7b30 16 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 33 minutes ago 318.6 MB
– Jetzt können wir einen Container basierend auf diesem neuen Image ausführendocker run -it --name "Server2" myname/ubuntu:v002 bash -c 'service ssh start ; ifconfig eth0; bash'
Löschen eines Images aus dem lokalen Repositorydocker rmi michel/ubuntu:v002
Entfernen eines Containers aus dem lokalen Docker-Systemdocker rm ContainerName
oderdocker rm ContainerID
So führen Sie ein Programm in einem laufenden, aber nicht angehängten Container aus:docker exec -t -i ContainerName bash -c 'command'